MAVEN插件部署JAVA项目到远程容器
来源:互联网 发布:证券公司怎么样知乎 编辑:程序博客网 时间:2024/06/05 05:58
通常情况下,程序开发完成后部署到线上Linux服务器,可能需要经历打包、将包文件传到服务器、SSH连上服务器、敲命令启动程序等一系列繁琐的步骤。实际上这些步骤都可以通过Maven的一个插件wagon-maven-plugin来自动完成。
文件上传到服务器
Maven项目可使用mvn package
指令打包,打包完成后包位于target目录下,要想在远程服务器上部署,首先要将包上传到服务器。
在项目的pom.xml中配置wagon-maven-plugin插件:
1234567891011121314151617181920
<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中:
12345678910111213141516171819202122232425262728
<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来部署。
12345678910111213141516171819202122232425262728
<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。
12345678910111213141516171819202122232425262728293031323334353637
<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插件部署JAVA项目到远程容器
- Maven插件wagon-maven-plugin自动化部署Java项目到Linux远程服务器
- Maven插件wagon-maven-plugin自动化部署Java项目到Linux远程服务器
- maven部署web项目到远程tomcat6
- Maven远程部署项目到Tomcat7
- maven 部署项目到远程服务器
- Maven 将项目部署到远程仓库
- maven部署项目到远程tomcat
- Eclipse利用Maven的插件部署web项目到远程tomcat服务器
- maven实现项目远程部署到tomcat(热部署)
- java项目部署到远程服务器上
- 两步将maven项目热部署到tomcat容器中
- eclipse+maven远程(自动)部署web项目到tomcat
- eclipse+maven远程(自动)部署web项目到tomcat
- 远程部署Maven web项目到web服务器
- 将maven项目部署到nexus的repository maven项目,可以通过maven的deploy插件,将之部署到远程服务器上,这样,该项目的artifact,就可以被其他项目通过pom的dep
- maven远程部署到tomcat
- Maven插件实现 打包项目,部署到tomcat端
- C實踐項目4.4—玩數字
- maven运行时的配置及命令详解
- jQuery中的extend方法
- LSB图像信息隐藏实验(附源代码)
- 病毒分析--mirai物联网病毒
- MAVEN插件部署JAVA项目到远程容器
- “机器换人”没什么可抱怨
- 阿里云-挂载盘分区和格式化步骤
- android基础_第十天
- Installation failed with message:INSTALL_CANCELED_BY_USER
- 集成Reactive Cocoa
- Ubuntu 16.04 安装搜狗拼音输入法
- [交互题] APIO2016 Gap
- c# 界面假死