maven(17)-自动发布到远程linux服务器
发布方式
手工方式:需要做一系列的工作,包括打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