发布方式
手工方式:需要做一系列的工作,上传到服务器,停止服务,删除旧文件,移动文件,启动服务等。
自动方式:一条命令完成以上所有过程
pom.xml
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.10</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<fromFile>target/test-0.0.1-SNAPSHOT.jar</fromFile>
<toFile>test-0.0.1-SNAPSHOT.jar</toFile>
<url>scp://wb:password@192.168.1.100/mnt/project/test/temp</url>
<commands>
<command>/mnt/project/test/sh/shutdown.sh</command>
<command>cp -rf /mnt/project/test/temp/test-0.0.1-SNAPSHOT.jar /mnt/project/test/</command>
<command>/mnt/project/test/sh/startup.sh</command>
</commands>
<displayCommandOutputs>true</displayCommandOutputs>
</configuration>
</plugin>
</plugins>
<extensions>:是maven扩展构件
wagon-maven-plugin:是自动上传的插件
<fromFile>:需要发布的本地文件名
<toFile>:发布到服务器后的文件名
<url>:协议://centos用户名:密码@服务器IP/tomcat的webapps目录,这是url的基本格式,发布到远程tomcat的webapps下
<commands>:按顺序执行linux命令,第一条是关闭tomcat,第二条是删除旧项目文件,第三条是启动 tomcat。
<displayCommandOutputs>:true是显示命令执行结果
执行命令
在eclipse中右键项目--运行方式--maven build...--goals中输入 package wagon:upload-single wagon:sshexec,运行,运行过程中可能会需要你输入一个yes--回车
这个命令的意思
package:编译打包
wagon:upload-single:上传包到pom.xml中的url,会自动覆盖url中旧的包
wagon:sshexec:执行<commands>中的命令
执行结果:将本地修改过的项目代码,通过插件配置,自动打包上传到服务器,重启服务。
startup.sh:
java -jar test-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &
shutdown.sh:
ps -ef | grep test-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}' | xargs kill -9
这个例子仅提供简单实现,继续进阶请移步 http://maven.apache.org/wagon/