基于maven自动发布-Maven Wagon
发布方式
手工方式:需要做一系列的工作,上传到服务器,停止服务,删除旧文件,移动文件,启动服务等。
自动方式:一条命令完成以上所有过程
pom.xml
<extensions><extension><groupId>org.apache.maven.wagon</groupId><artifactId>wagon-ssh</artifactId><version>2.10</version></extension></extensions><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>wagon-maven-plugin</artifactId><version>1.0</version><configuration><fromFile>target/test-0.0.1-SNAPSHOT.jar</fromFile><toFile>test-0.0.1-SNAPSHOT.jar</toFile><url>scp://wb:password@192.168.1.100/mnt/project/test/temp</url><commands><command>/mnt/project/test/sh/shutdown.sh</command><command>cp -rf /mnt/project/test/temp/test-0.0.1-SNAPSHOT.jar /mnt/project/test/</command><command>/mnt/project/test/sh/startup.sh</command></commands><displayCommandOutputs>true</displayCommandOutputs></configuration></plugin></plugins>
<extensions>:是maven扩展构件
wagon-maven-plugin:是自动上传的插件
<fromFile>:需要发布的本地文件名
<toFile>:发布到服务器后的文件名
<url>:协议://centos用户名:密码@服务器IP/tomcat的webapps目录,这是url的基本格式,发布到远程tomcat的webapps下
<commands>:按顺序执行linux命令,第一条是关闭tomcat,第二条是删除旧项目文件,第三条是启动 tomcat。
<displayCommandOutputs>:true是显示命令执行结果
执行命令
在eclipse中右键项目--运行方式--maven build...--goals中输入 package wagon:upload-single wagon:sshexec,运行,运行过程中可能会需要你输入一个yes--回车
这个命令的意思
package:编译打包
wagon:upload-single:上传包到pom.xml中的url,会自动覆盖url中旧的包
wagon:sshexec:执行<commands>中的命令
执行结果:将本地修改过的项目代码,通过插件配置,自动打包上传到服务器,重启服务。
startup.sh:
java -jar test-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &
shutdown.sh:
ps -ef | grep test-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}' | xargs kill -9
这个例子仅提供简单实现,继续进阶请移步 http://maven.apache.org/wagon/
基于maven自动发布-Maven Wagon相关推荐
- Jenkins maven自动发布配置
说明: jenkins maven svn实现自动编译及自动发布,svn也可以切换成git,看自己需要!之前也配置过几次,都没有做记录,后面再次配置很多忘记了,又得网上找资料,发现网上的资料很多 ...
- linux svn 自动发布,linux svn tomcat maven 自动发布打包
1:首先确定了LINUX上已安装SVN MAVEN 2: 把SVN项目CHECKOUT到LINUX服务器 svn checkout svn://172.17.210.82:9999/xxx --use ...
- 构建gitbook并基于gitlab自动发布~
整个构建过程分为以下几个部分: 安装node,npm部署gitbook gitlab版本8以上支持pipelines,服务器上安装,配置gitlab runner. 1.安装node curl -sL ...
- Jenkins+Gitlab+Nginx+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)
实现流程: 手动部署Java项目至后端Web集群 1.搭建Nginx+Tomcat集群架构. 2.开发提交Java源代码至Gitlab仓库. 3.手动获取Java源代码,然后使用Maven进行编译. ...
- Jenkins+Gitlab+Nginx+SonarQube+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)
环境拓扑: Jenkins -192.168.1.30 Gitlab -192.168.1.31 LB -192.168.1.32 Web1 -192.168.1.33 Web2 -192. ...
- 如何使用GitHub Action自动发布JAR到Maven仓库
之前发布开源项目Payment Spring Boot[1]到 Maven 中央仓库我都是手动执行mvn deploy,在CI/CD大行其道的今天使用这种方式有点"原始".于是我一 ...
- jenkins+maven+ansible实现测试环境完全自动发布
1.jenkins安装配置略 2.配置maven [root@jenkins-99 maven]# cat /etc/profile.d/maven.sh export MAVEN_HOME=/usr ...
- 【项目自动发布】基于Docker/单节点Rancher/GitLab搭建简易的CI/CD流水线(备忘+补充完善)
前言 最近面试好像也经常问到一个问题: 你们项目是怎么发布的 传统的Java项目都是本地打包成 jar包 或者 war包, 上传到服务器, 然后通过shell脚本的方式启动的 要求我们具备一定的she ...
- 解放双手 | Jenkins + gitlab + maven 自动打包部署项目
前言 记录 Jenkins + gitlab + maven 自动打包部署后端项目详细过程! 需求背景 不会偷懒的程序员不是好码农,传统的项目部署,有时候采用本地手动打包,再通过ssh传到服务器部署运 ...
最新文章
- c#中如何跨线程调用windows窗体控件?
- 互联网协议 — IPv4 互联网协议第 4 版
- 初学python,分享一个简单的Excel文档合并工具
- 外贸想做好开发客户和地推?就一定要用这个软件!
- jupyter 托管_如何在本地托管的Jupyter Notebook上进行协作
- OsharpNS轻量级.net core快速开发框架简明入门教程
- 我们究竟还要学习哪些Android知识?满满干货指导
- 图【数据结构F笔记】
- 手机发送验证码的业务逻辑探究-主要是安全性,响应性
- webservice发布问题,部署iis后调用不成功
- python处理excel表格-60万行的Excel数据,Python轻松处理
- matlab求数组转置,数组与矩阵运算
- MATLAB Simulink
- MathWorks 中国
- ElasticSearch服务器的搭建与使用
- php+rabbitMQ操作之延迟队列(延迟插件)
- #2013年Google官方技术求职大礼包#面试求职技巧篇
- Vue3+elementplus搭建通用管理系统实例十五:界面美化及样式调整
- 一卡通(M1卡)破解过程记录——准备篇
- MAC下网易MuMu模拟器调试ReactNative
- 14-1 没名字
- CRC循环冗余码及其详细计算