文章目录
maven一键部署到服务器
简介
利用maven mojo功能一键部署jar包或war包到远程服务器上,很适合个人项目一键发布上去再执行重启命令。阿里云的插件功能太冗余了,这个比较简洁。
配置
- maven的setting.xml中添加服务器账号配置
<server>
<id>deployment:local</id>
<username>root</username>
<password>root</password>
</server>
- pom build下添加
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.8</version>
</extension>
</extensions>
- 添加plugin
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId>
<version>1.46</version>
</dependency>
</dependencies>
<configuration>
<serverId>deployment:local</serverId>
<fromFile>target/wBlog.war</fromFile>
<url>scp://192.168.10.158/data</url>
<commands>
<command>rm -rf /data/tomcats/webapps/wBlog*</command>
<command>sleep 5s</command>
<command>mv /data/wBlog.war /data/tomcats/webapps/</command>
<command>sleep 8s</command>
<command>sh /data/restart_tomcat.sh</command>
</commands>
<!-- 显示运行命令的输出结果 -->
<displayCommandOutputs>true</displayCommandOutputs>
</configuration>
</plugin>
- serverId:setting.xml中的账密配置id
- fromFile:待发布的文件路径
- url:上传到服务器的路径
- commands:上传后的执行命令
plugin中的dependency如果报错 先把dependency复制到外部的dependencies中并让maven引入;引入后再删除
使用
最终执行以下命令达到一键部署功能
mvn package wagon:upload-single wagon:sshexec