在项目开发过程中,经常需要部署代码到开发环境,每天可能有好多次,每次都需要mvn clean install
,然后上传到服务器。实际上这些繁琐的步骤可以通过一个Maven插件来自动完成。
配置Linux服务器用户名和密码
为了让wagon-maven-plugin插件能SSH连上Linux服务器,首先需要在Maven的配置文件settings.xml中配置好server的用户名和密码。
linux-server-dev root 123456
文件上传到服务器
Maven项目可使用 mvn package 指令打包,打包完成后包位于target目录下,要想在远程服务器上部署,首先要将包上传到服务器。在项目的pom.xml中配置wagon-maven-plugin插件:
org.apache.maven.wagon wagon-ssh 2.8 org.codehaus.mojo wagon-maven-plugin 1.0 linux-server-dev target/project_name.jar scp://192.168.1.1/home/project_name/
配置完成后,运行命令:mvn clean package wagon:upload-single
重启服务
部署项目不仅要把包传上服务器,而且还需要执行一些指令来重启服务。通常我们会把重启命令写入到一个脚本中,然后通过执行脚本来重启服务。
新建 restart.sh 文件,一般把改文件放在当前项目下,因为每个项目的启动脚本都不一样#!/bin/bashps -ef | grep a8admin | grep qa |awk '{print $2}' |xargs kill -9sleep 1nohup java -jar -Dspring.profiles.active=qa -Dserver.port=8083 a8admin-api-1.0-RELEASE.jar >> 8083.log 2>&1 &tail -f 8083.log
org.apache.maven.wagon wagon-ssh 2.8 org.codehaus.mojo wagon-maven-plugin 1.0 linux-server-dev target/project_name.jar scp://192.168.20.128/home/project_name/ sh ./restart.sh true
配置完成后,运行命令:mvn clean package wagon:upload-single wagon:sshexec
上传war包并启动Tomcat
如果是Web应用,可使用服务器上的Tomcat来部署。
org.apache.maven.wagon wagon-ssh 2.8 org.codehaus.mojo wagon-maven-plugin 1.0 linux-server-dev target/project_name.war scp://192.168.20.128/home/project_name/ sh /home/tomcat/apache-tomcat-7.0.55/bin/shutdown.sh rm -rf /home/tomcat/apache-tomcat-7.0.55/webapps/javawebdeploy sh /home/tomcat/apache-tomcat-7.0.55/bin/startup.sh true
完成以上配置后,同样可通过 mvn clean package wagon:upload-single wagon:sshexec
命令自动部署。
配置execution
如果你觉得 mvn clean package wagon:upload-single wagon:sshexec
命令太长了不好记,那么可以配置execution,在运行package打包的同时运行upload-single和sshexec。
org.apache.maven.wagon wagon-ssh 2.8 org.codehaus.mojo wagon-maven-plugin 1.0 upload-deploy package upload-single sshexec linux-server-dev target/project_name.war scp://192.168.20.128/home/tomcat/apache-tomcat-7.0.55/webapps sh /home/tomcat/apache-tomcat-7.0.55/bin/shutdown.sh rm -rf /home/tomcat/apache-tomcat-7.0.55/webapps/javawebdeploy sh /home/tomcat/apache-tomcat-7.0.55/bin/startup.sh true
配置完成后,即可使用 mvn clean package
来代替 mvn clean package wagon:upload-single wagon:sshexec
欢迎订阅「K叔区块链」 - 专注于区块链技术学习 博客地址: 简书主页: segmentfault主页: 腾讯云主页: