maven的站点功能非常强大,maven社区贡献了很多插件,能产生更加丰富的站点内容,如果你的项目是一个多模块的项目,那么只有将项目发布到站点后各个模块之间的链接才会生效,发布站点的实现步骤为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.3</version> </plugin> </plugins> <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ssh</artifactId> <version>2.6</version> </extension> </extensions> </build> <distributionManagement> <site> <id>test-site</id> <url>sftp://IP/path/</url> </site> </distributionManagement> |
?site插件用于产生site站点,wagon-ssh提供对ssh的支持,distributionManagement 下的<site>元素表示site要部署到那里,
1 2 3 4 5 6 7 |
<servers> <server> <id>test-site</id> <username>username</username> <password>password</password> </server> </servers> |
?虽然我将用户名和密码配置了settings.xml中了,但是第一次执行mvn site-deploy的时候还是会交互性的提示认证错误,输入yes重试一下就好了。目前任然不知为啥,agon-ssh会将ssh凭证存放在~/.ssh/known_hosts 文件中,我将其删除了之后,每次都会提示我认证错误,需要再试才成功。顺便说一下,使用用户名和密码登陆时需要将/etc/ssh/sshd_config的PasswordAuthentication 设为yes
参考文档:
maven官方通过ftp 和external ssh 发布的例子
http://maven.apache.org/plugins/maven-deploy-plugin/project-deployment.html
stackoverflow上热心网友的答案
http://stackoverflow.com/questions/14725904/maven-deploy-to-remote-server
Posted in: 项目自动化 | Tags: maven, site-deploy
Comments are closed.