发布方式

手工方式:需要做一系列的工作,上传到服务器,停止服务,删除旧文件,移动文件,启动服务等。

自动方式:一条命令完成以上所有过程

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相关推荐

  1. Jenkins maven自动发布配置

    说明:    jenkins maven svn实现自动编译及自动发布,svn也可以切换成git,看自己需要!之前也配置过几次,都没有做记录,后面再次配置很多忘记了,又得网上找资料,发现网上的资料很多 ...

  2. linux svn 自动发布,linux svn tomcat maven 自动发布打包

    1:首先确定了LINUX上已安装SVN MAVEN 2: 把SVN项目CHECKOUT到LINUX服务器 svn checkout svn://172.17.210.82:9999/xxx --use ...

  3. 构建gitbook并基于gitlab自动发布~

    整个构建过程分为以下几个部分: 安装node,npm部署gitbook gitlab版本8以上支持pipelines,服务器上安装,配置gitlab runner. 1.安装node curl -sL ...

  4. Jenkins+Gitlab+Nginx+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)

    实现流程: 手动部署Java项目至后端Web集群 1.搭建Nginx+Tomcat集群架构. 2.开发提交Java源代码至Gitlab仓库. 3.手动获取Java源代码,然后使用Maven进行编译. ...

  5. 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. ...

  6. 如何使用GitHub Action自动发布JAR到Maven仓库

    之前发布开源项目Payment Spring Boot[1]到 Maven 中央仓库我都是手动执行mvn deploy,在CI/CD大行其道的今天使用这种方式有点"原始".于是我一 ...

  7. jenkins+maven+ansible实现测试环境完全自动发布

    1.jenkins安装配置略 2.配置maven [root@jenkins-99 maven]# cat /etc/profile.d/maven.sh export MAVEN_HOME=/usr ...

  8. 【项目自动发布】基于Docker/单节点Rancher/GitLab搭建简易的CI/CD流水线(备忘+补充完善)

    前言 最近面试好像也经常问到一个问题: 你们项目是怎么发布的 传统的Java项目都是本地打包成 jar包 或者 war包, 上传到服务器, 然后通过shell脚本的方式启动的 要求我们具备一定的she ...

  9. 解放双手 | Jenkins + gitlab + maven 自动打包部署项目

    前言 记录 Jenkins + gitlab + maven 自动打包部署后端项目详细过程! 需求背景 不会偷懒的程序员不是好码农,传统的项目部署,有时候采用本地手动打包,再通过ssh传到服务器部署运 ...

最新文章

  1. c#中如何跨线程调用windows窗体控件?
  2. 互联网协议 — IPv4 互联网协议第 4 版
  3. 初学python,分享一个简单的Excel文档合并工具
  4. 外贸想做好开发客户和地推?就一定要用这个软件!
  5. jupyter 托管_如何在本地托管的Jupyter Notebook上进行协作
  6. OsharpNS轻量级.net core快速开发框架简明入门教程
  7. 我们究竟还要学习哪些Android知识?满满干货指导
  8. 图【数据结构F笔记】
  9. 手机发送验证码的业务逻辑探究-主要是安全性,响应性
  10. webservice发布问题,部署iis后调用不成功
  11. python处理excel表格-60万行的Excel数据,Python轻松处理
  12. matlab求数组转置,数组与矩阵运算 - MATLAB Simulink - MathWorks 中国
  13. ElasticSearch服务器的搭建与使用
  14. php+rabbitMQ操作之延迟队列(延迟插件)
  15. #2013年Google官方技术求职大礼包#面试求职技巧篇
  16. Vue3+elementplus搭建通用管理系统实例十五:界面美化及样式调整
  17. 一卡通(M1卡)破解过程记录——准备篇
  18. MAC下网易MuMu模拟器调试ReactNative
  19. 14-1 没名字
  20. CRC循环冗余码及其详细计算

热门文章

  1. 更新网卡后蓝牙无法删除亦无法连接问题
  2. 汽车行业深度报告-特斯拉生产制造革命:一体化压铸
  3. 《C++Primer》学习笔记(11-12章)
  4. 如何改进课堂学习方法?
  5. 泛微OA自开发初始应做哪些
  6. 【Unity】Firebase-Google登录身份验证功能接入流程
  7. MindMapper中的主题该怎样进行修改
  8. java读取potx
  9. 汽车电子之Infineon车规级芯片
  10. Python Turtle绘图[难度2星]:奥运五环(用最简单的方法实现五环套接)