maven(17)-自动发布到远程linux服务器

来源:互联网 发布:java long转date 编辑:程序博客网 时间:2024/05/22 13:02


发布方式

手工方式:需要做一系列的工作,包括打WAR包,上传到服务器,重启服务器,删除旧文件等

自动方式:一条命令完成以上所有过程


服务器环境

centos7.3和tomcat8,关于centos的应用,涉及LINUX方面的知识以后有机会再讲,这里假设已经在centos上部署好了tomcat


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-1.0.war</fromFile><toFile>test.war</toFile><url>scp://wb:123@192.168.150.128/home/wb/pro/tomcat/webapps</url><commands><command>/home/wb/pro/tomcat/bin/shutdown.sh</command><command>rm -rf /home/wb/pro/tomcat/webapps/test</command><command>/home/wb/pro/tomcat/bin/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:打war包

wagon:upload-single:上传war包到pom.xml中的url,会自动覆盖url中旧的war包

wagon:sshexec:执行<commands>中的命令

执行结果:将本地修改过的项目代码,通过插件配置,自动打成WAR包上传到服务器,自动删除旧项目,自动重启tomcat


1 0