网站首页 > 技术文章 正文
前言
传统的部署springboot项目,需要先打包成jar或者war,然后上传到Linux服务器,进行部署。现在有很多公司用Jenkins来做自动化部署,但是Jenkins对于我们做简单的项目部署太重了,有没有一个插件是直接集成在maven里面,直接在IDE内部署服务到远程?答案是肯定的,这就是我今天要推荐的自动化远程部署插件wagon-maven-plugin。
推荐理由
- 简单集成
- 一行命令快速远程部署,不用登录Linux
实践
1 pom 中配置 wagon-ssh
源码
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.8</version>
</extension>
</extensions>
2 配置wagon-maven-plugin
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<serverId>linux-server-dev</serverId>
<fromFile>target/${pack-name}</fromFile>
<url><![CDATA[scp://${remote-username}:${remote-passwd}@${remote-addr}${service-path}]]></url>
<commands>
<!-- Kill Old Process -->
<command>pkill -f ${pack-name}</command>
<command>rm -f ${service-path}/myproject.log</command>
<!-- Restart jar package,write result into meivit.log -->
<command><![CDATA[nohup java -jar ${service-path}/${pack-name} > ${service-path}/myproject.log 2>&1 & ]]></command>
<command><![CDATA[netstat -nptl]]></command>
<command><![CDATA[ps -ef | grep java | grep -v grep]]></command>
</commands>
<!-- 运行命令 mvn clean package wagon:upload-single wagon:sshexec -->
<displayCommandOutputs>true</displayCommandOutputs>
</configuration>
</plugin>
如果是tomcat部署只需换命令:
<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>
3 配置命令中属性参数
<properties>
<java.version>11</java.version>
<service-path>/opt</service-path>
<pack-name>myproject.jar</pack-name>
<remote-addr>192.168.3.189</remote-addr>
<remote-username>root</remote-username>
<remote-passwd>123456</remote-passwd>
</properties>
4 运行部署命令
mvn clean package wagon:upload-single wagon:sshexec
5 部署成功
总结
从此部署,只用要给命令就在本地搞定了。
猜你喜欢
- 2024-10-19 Java高频面试题之Linux(java面试 linux)
- 2024-10-19 性能测试能力提升-JVM GC监控和优化
- 2024-10-19 排查GC问题常用的工具(排查问题的方式有哪些)
- 2024-10-19 20道阿里巴巴中高级java面试题详解,把这些弄懂offer拿到你手软
- 2024-10-19 Java Web实战篇:发布和运维必备的12条Linux命令
- 2024-10-19 Java工程师常用Linux命令大全(linux javac)
- 2024-10-19 玩转linux下启动jar和关闭jar方式(java程序员必看)
- 2024-10-19 超详细的EFK安装部署教程--环境准备篇
- 2024-10-19 为什么阿里架构师是这样定位Java性能问题的?这几点总结的很详细
- 2024-10-19 五千字长文带你硬磕Java线程Dump分析,没看懂来找我
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)