MAVEN插件部署JAVA项目到远程容器

通常情况下,程序开发完成后部署到线上Linux服务器,可能需要经历打包、将包文件传到服务器、SSH连上服务器、敲命令启动程序等一系列繁琐的步骤。实际上这些步骤都可以通过Maven的一个插件wagon-maven-plugin来自动完成。

文件上传到服务器

Maven项目可使用mvn package指令打包,打包完成后包位于target目录下,要想在远程服务器上部署,首先要将包上传到服务器。

在项目的pom.xml中配置wagon-maven-plugin插件:

1
2
3
4
5
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
<build>
	<extensions>  <extension>  <groupId>org.apache.maven.wagon</groupId>  <artifactId>wagon-ssh</artifactId>  <version>2.8</version>  </extension>  </extensions>  <plugins>  <plugin>  <groupId>org.codehaus.mojo</groupId>  <artifactId>wagon-maven-plugin</artifactId>  <version>1.0</version>  <configuration>  <fromFile>target/test.jar</fromFile>  <url>scp://user:password@192.168.20.128/home/xxg/Desktop</url>  </configuration>  </plugin>  </plugins> </build> 

 

<fromFile>target/test.jar</fromFile>是要上传到服务器的文件,一般来说是jar或者war包,<url>scp://user:password@192.168.20.128/home/xxg/Desktop</url>配置服务器的用户、密码、地址以及文件上传的目录。

配置完成后,运行命令:

1
mvn clean package wagon:upload-single

 

packagewagon:upload-single分别对项目进行打包和上传操作。命令运行结束后,文件就会成功上传到Linux服务器。

在服务器上执行Linux命令

部署项目不仅要把包传上服务器,而且还需要执行一些指令来启动程序。在程序启动之前,可能还需要将原来的程序关闭。

运行jar文件

启动jar包通常会使用java -jar test.jar命令,可以将命令配置在pom.xml中:

1
2
3
4
5
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
<build>
	<extensions>  <extension>  <groupId>org.apache.maven.wagon</groupId>  <artifactId>wagon-ssh</artifactId>  <version>2.8</version>  </extension>  </extensions>  <plugins>  <plugin>  <groupId>org.codehaus.mojo</groupId>  <artifactId>wagon-maven-plugin</artifactId>  <version>1.0</version>  <configuration>  <fromFile>target/test.jar</fromFile>  <url>scp://user:password@192.168.20.128/home/xxg/Desktop</url>  <commands>  <!-- 杀死原来的进程 -->  <command>pkill -f test.jar</command>  <!-- 重新启动test.jar,程序的输出结果写到nohup.out文件中 -->  <command>nohup java -jar /home/xxg/Desktop/test.jar > /home/xxg/Desktop/nohup.out 2>&amp;1 &amp;</command>  </commands>  <!-- 显示运行命令的输出结果 -->  <displayCommandOutputs>true</displayCommandOutputs>  </configuration>  </plugin>  </plugins> </build> 

 

配置完成后,运行命令:

1
mvn clean package wagon:upload-single wagon:sshexec

 

packagewagon:upload-singlewagon:sshexec分别对项目进行打包、上传、运行command命令的操作。命令运行结束后,在服务器上查看进程ps -ef|grep test.jar,或者查看nohup.out文件,就可以看到Java程序在服务器上已经启动。

上传war包并启动Tomcat

如果是Web应用,可使用服务器上的Tomcat来部署。

1
2
3
4
5
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
<build>
	<extensions>  <extension>  <groupId>org.apache.maven.wagon</groupId>  <artifactId>wagon-ssh</artifactId>  <version>2.8</version>  </extension>  </extensions>  <plugins>  <plugin>  <groupId>org.codehaus.mojo</groupId>  <artifactId>wagon-maven-plugin</artifactId>  <version>1.0</version>  <configuration>  <fromFile>target/javawebdeploy.war</fromFile>  <!-- 上传到Tomcat的webapps目录下 -->  <url>scp://user:password@192.168.20.128/coder/tomcat/apache-tomcat-7.0.55/webapps</url>  <commands>  <!-- 重启Tomcat -->  <command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/shutdown.sh</command>  <command>rm -rf /coder/tomcat/apache-tomcat-7.0.55/webapps/javawebdeploy</command>  <command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/startup.sh</command>  </commands>  <displayCommandOutputs>true</displayCommandOutputs>  </configuration>  </plugin>  </plugins> </build> 

 

完成以上配置后,同样可通过mvn clean package wagon:upload-single wagon:sshexec命令自动部署。

配置execution

如果你觉得mvn clean package wagon:upload-single wagon:sshexec命令太长了不好记,那么可以配置execution,在运行package打包的同时运行upload-single和sshexec。

1
2
3
4
5
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 
<build>
	<extensions>  <extension>  <groupId>org.apache.maven.wagon</groupId>  <artifactId>wagon-ssh</artifactId>  <version>2.8</version>  </extension>  </extensions>  <plugins>  <plugin>  <groupId>org.codehaus.mojo</groupId>  <artifactId>wagon-maven-plugin</artifactId>  <version>1.0</version>  <executions>  <execution>  <id>upload-deploy</id>  <!-- 运行package打包的同时运行upload-single和sshexec -->  <phase>package</phase>  <goals>  <goal>upload-single</goal>  <goal>sshexec</goal>  </goals>  <configuration>  <fromFile>target/javawebdeploy.war</fromFile>  <url>scp://user:password@192.168.20.128/coder/tomcat/apache-tomcat-7.0.55/webapps</url>  <commands>  <command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/shutdown.sh</command>  <command>rm -rf /coder/tomcat/apache-tomcat-7.0.55/webapps/javawebdeploy</command>  <command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/startup.sh</command>  </commands>  <displayCommandOutputs>true</displayCommandOutputs>  </configuration>  </execution>  </executions>  </plugin>  </plugins> </build> 

 

配置完成后,即可使用mvn clean package来代替mvn clean package wagon:upload-single wagon:sshexec

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值