Maven插件wagon-maven-plugin自动化部署Java项目到Linux远程服务器
2017-03-25 22:10
531 查看
通常情况下,程序开发完成后部署到线上Linux服务器,可能需要经历打包、将包文件传到服务器、SSH连上服务器、敲命令启动程序等一系列繁琐的步骤。实际上这些步骤都可以通过Maven的一个插件wagon-maven-plugin来自动完成。
在项目的pom.xml中配置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 |
package、
wagon: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 202122 | <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>&1 &</command> </commands> <!-- 显示运行命令的输出结果 --> <displayCommandOutputs>true</displayCommandOutputs> </configuration> </plugin> </plugins> </build> |
1 | mvn clean package wagon:upload-single wagon:sshexec |
package、
wagon:upload-single、
wagon: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 202122 | <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 202122 | <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。
相关文章推荐
- Maven插件wagon-maven-plugin自动化部署Java项目到Linux远程服务器
- Linux Shell脚本之远程自动化部署java maven项目
- idea将项目自动化部署到服务器(wagon-maven-plugin)
- maven自动化部署项目到远程服务器(tomcat)
- java项目部署到远程服务器上(安装的tomcat)
- Jenkins之——构建Java Maven项目(Jar)并发布到远程服务器
- Java-idea-创建maven项目,部署项目,部署服务器,简单测试
- maven插件部署java项目到远程容器
- Maven打包Web 项目并且部署到Linux上的Tomcat服务器下
- linux 环境下部署 JAVA项目到tomcat服务器
- maven部署web项目到远程服务器的Tomcat,以及输入IP地址直接访问到这个web项目
- maven部署项目到远程服务器
- linux上部署tomcat,用Nginx做反向代理,并将Java项目部署到服务器上
- linux的jenkins安装与使用jenkins自动化打包maven项目部署到tomcat
- 利用jenkins+maven部署java应用到远程服务器
- java的maven工程部署到linux(包括tomcat部署,jdk安装,maven工程打包及项目运行)
- 使用cargo-maven2-plugin插件自动化部署项目时遇到的问题
- Jenkins自动部署Maven +tomcat+linux环境java项目并自动部署到外网
- 从写项目到部署linux服务器全过程-MyEclipse创建Maven web项目名后缀会有Maven Webapp
- maven 部署项目到远程服务器