wagon-maven-plugin实现自动打包部署到服务器
1.在maven中添加依赖
<!-- https://mvnrepository.com/artifact/org.codehaus.mojo/wagon-maven-plugin -->
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>2.0.0</version>
</dependency>
2.在pom的build节点添加wagon-ssh
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.10</version>
</extension>
</extensions>
3.在plugins下添加配置
<plugins>
<!-- 执行的顺序 和命令的顺序有关系,我们这边使用第一个 先执行command 再进行发包 -->
<!-- mvn clean package wagon:sshexec wagon:upload-single -->
<!-- mvn clean package wagon:upload-single wagon:sshexec -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<fromFile>target/${pack-name}</fromFile>
<url>scp://${remote-username}:${remote-passwd}@${remote-addr}${service-path}</url>
<displayCommandOutputs>true</displayCommandOutputs>
<commands>
<!-- >command>kill -9 `ps -ef |grep ${remote-name}|grep -v "grep" |awk '{print $2}'`</command -->
<command>rm -rf ${service-path}/*</command>
<command>${start-shell} ${remote-file}</command>
<command><![CDATA[netstat -nptl]]></command>
<command><![CDATA[ps -ef | grep ${remote-name} | grep -v grep]]></command>
</commands>
</configuration>
</plugin>
</plugins>
其中
<fromFile>为target下的war包 全路径名称 如 target/demo.war
<url>为服务器路径地址 如: scp://root:123456@192.168.1.96:22/usr/local/tomcat/demo/webapps
<commands>为在服务器执行的命令集合,<command>为执行的命令,这些命令需要根据具体的情况来写,比如删除war包,重启服务之类的操作
也可以跟我一样 通过参数化的方式来指定
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<service-path>/usr/local/tomcat/demo/webapps</service-path>
<pack-name>NACPortal_${package.environment}.war</pack-name>
<remote-addr>192.168.1.96:22</remote-addr>
<remote-username>root</remote-username>
<remote-passwd>123456</remote-passwd>
<remote-name>NACPortal</remote-name>
<start-shell>/usr/local/tomcat/start_tomcat.sh</start-shell>
<remote-file>/usr/local/tomcat/demo</remote-file>
</properties>
至此配置完成。
4.在终端或者pom.xml文件相同目录下执行以下mvn命令
最后需要通过执行以下命令来完成部署的最后一步
命令一: mvn clean package wagon:sshexec wagon:upload-single
命令二:mvn clean package wagon:upload-single wagon:sshexec
通过测试我发现 两个命令有执行顺序上的区别,命令一先执行配置指定的<commands>命令后进行上传war包,命令二相反;
具体使用哪个,还是要按照实际的命令情况使用,通常使用命令一即可
wagon-maven-plugin实现自动打包部署到服务器的更多相关文章
- 解放双手 | Jenkins + gitlab + maven 自动打包部署项目
前言 记录 Jenkins + gitlab + maven 自动打包部署后端项目详细过程! 需求背景 不会偷懒的程序员不是好码农,传统的项目部署,有时候采用本地手动打包,再通过ssh传到服务器部署运 ...
- Jenkins结合shell脚本实现(gitLab/gitHub)前端项目自动打包部署服务器
原始发布部署: 石器时代的我们,先是本地打包好项目,在去服务器上把原来的文件删了,然后回到本地copy到服务器: 这操看起来简单,实际部署的人就知道多烦了,假如来几个项目都要重新发布:那就爽了: 今天 ...
- DevOps系列——Jenkins/Gitlab自动打包部署
前面只说了DevOps的两个基础组件Jenkins和GitLab,客官也不要着急,我们玩就玩的深入一点,Gitlab和Jenkins的各种配置和 插件很多,也够啃一阵子的,不要照着操作一通就感觉万事大 ...
- Jenkins+maven+Tomcat+SVN一键自动打包部署应用到服务器
今天请教了大神,终于把jenkins给搞明白了 现在做下笔记,防止自己老年痴呆又忘了怎么配置 (截图可能不够清晰,有不清楚的随时评论打call) 机器配置: 安装配置规划 机器 192.168.169 ...
- axios踩坑记录+拦截器使用+vue cli代理跨域proxy+webpack打包部署到服务器
1.小小的提一下vue cli脚手架前端调后端数据接口时候的本地代理跨域问题,如我在本地localhost访问接口http://40.00.100.100:3002/是要跨域的,相当于浏览器设置了一道 ...
- vue项目打包部署到服务器,静态资源文件404
js文件404问题 原因:打包的项目静态资源的路径需要设置为绝对路径.如果是相对路径会出错 解决办法:修改config/index.js文件,将 assetsPublicPath修改为' ...
- vue之项目打包部署到服务器
这是今年的第一篇博客.整理一下vue如何从项目打包到部署服务器,给大家做下分享,希望能给大家带来或多或少的帮助,喜欢的大佬们可以给个小赞,如果有问题也可以一起讨论下. 第一步:这是很关键的一步.打开项 ...
- vue项目打包 部署nginx服务器 访问远程接口 本地json 跨域问题
本文建立在你已经在windows7上已经配好了nginx的前提下进行!!! 如果没有请移步至:https://www.cnblogs.com/jack1208-rose0203/p/5739765.h ...
- jenkins自动打包部署项目
首先去jenkins的官网下载安装包 https://jenkins.io/ 个人下载是长期稳定的那个版本,下载后,得到一个.msi的安装包: 点击进行安装,然后一直点击下一步. jenkins会 ...
随机推荐
- Python 绝技 —— TCP服务器与客户端
i春秋作家:wasrehpic 0×00 前言 「网络」一直以来都是黑客最热衷的竞技场.数据在网络中肆意传播:主机扫描.代码注入.网络嗅探.数据篡改重放.拒绝服务攻击……黑客的功底越深厚,能做的就越多 ...
- Lucene使用案例
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引 ...
- ajax post 请求发送 json 字符串
$.ajax({ // 请求方式 type:"post", // contentType contentType:"application/json", // ...
- iOS数据持久化--归档
一.简介 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦: 偏好设置(将所有的东西都保存在同一个文件夹下面,且主要用于存储应用的设置信息 归档:因为 ...
- WebForm——JS检测浏览器是否是IE浏览器
function IEVersion() { var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 && userAgen ...
- [Umbraco] 在umbraco中开发xlst的小窍门
当你在umbraco开发xslt时也可以调用C#里的方法,具体方法参考如下 点击第二个按钮 点击右侧的"Get Extensions" 系统自带了工具类,里面有很多常用也很实用的方 ...
- 在Ubuntu Server上安装Postgresql
首先更新一下源: sudo apt-get update 如果你不知道Postgresql具体的包的名称,可以使用一下语句进行查找: apt-cache search ^Postgresql 使用上述 ...
- Shell脚本 | 抓取log文件
在安卓应用的测试过程中,遇到 Crash 或者 ANR 后,想必大家都会通过 adb logcat 命令来抓取日志定位问题.如果直接使用 logcat 命令的话,默认抓取出的 log 文件包含安卓运行 ...
- tomcat 启动速度慢背后的真相
1. tomcat 启动慢 在线上环境中,我们经常会遇到类似的问题,就是tomcat 启动比较慢,查看内存和cpu,io都是正常的,但是启动很慢,有的时候长达几分钟,这到底是什么原因导致的. 1.1 ...
- rpm 软件包管理
rpm---Redhat Pachage Manager 挂载光盘: [root@localhost sdb1]# mount /dev/sr0 /mnt [root@localhost sdb1]# ...