Maven 集成 Wagon
提高 本地测试打包测试服 且重启动的效率
pom.xml 中整合 wagon
配置profiles
<profiles><profile><id>local</id><properties><account/><password/><ip/><profileActive>local</profileActive></properties><activation><activeByDefault>true</activeByDefault></activation></profile><profile><id>dev</id><properties><account>服务账号</account><password>服务 密码</password><ip>服务 IP</ip><profileActive>dev</profileActive></properties></profile><profile><id>prod</id><properties><account/><password/><ip/><profileActive>prod</profileActive></properties></profile>
</profiles>
profiles 在 idea中的视图效果
集成 wagon 插件
<!-- maven扩展 提供ssh远程服务 是wagon-maven-plugin插件所依赖 -->
<extensions><extension><groupId>org.apache.maven.wagon</groupId><artifactId>wagon-ssh</artifactId><version>2.8</version></extension>
</extensions>
集成 timestamp 插件
<plugin><groupId>org.codehaus.mojo</groupId><artifactId>build-helper-maven-plugin</artifactId><version>1.9.1</version><executions><execution><id>timestamp-property</id><goals><goal>timestamp-property</goal></goals></execution></executions><configuration><name>current.time</name><pattern>yyyyMMdd-HHmmss</pattern><timeZone>GMT+8</timeZone></configuration>
</plugin>
集成插件命令脚本
第一种方式:
<plugin><groupId>org.codehaus.mojo</groupId><artifactId>wagon-maven-plugin</artifactId><version>1.0</version><configuration><!– 拷贝目录下(执行目录) target目录下的jar包 –><fromFile>target/${project.artifactId}-${project.version}.jar</fromFile><!– 使用scp传输文件 指定服务端 用户名密码 ip 并指定目标文件夹–><url>scp://${user}:${password}@${ip}/root/ppr</url><!– 命令列表 可以在传输完成后执行 –><commands><command>sh /root/服务 /bin/start-jar.sh restart</command></commands><!– 显示运行命令的输出结果 –><displayCommandOutputs>true</displayCommandOutputs></configuration>
package 之后, 依次执行 wagon 命令, 用哪个服务需要手动执行 其命令
第二种方式
这种打包方式, 切环境 如果没有配置 标签参数时,在执行wagon插件时,将报错,但 不影响正确的jar包的环境
标签 ${} 相关配置在 配置的 下 下 中获取
<plugin><groupId>org.codehaus.mojo</groupId><artifactId>wagon-maven-plugin</artifactId><version>1.0</version><!--<configuration><!– 拷贝目录下(执行目录) target目录下的jar包 –><fromFile>target/${project.artifactId}-${project.version}.jar</fromFile><!– 使用scp传输文件 指定服务端 用户名密码 ip 并指定目标文件夹–><url>scp://${user}:${password}@${ip}/root/服务 </url><!– 命令列表 可以在传输完成后执行 –><commands><command>sh /root/服务 /bin/start-jar.sh restart</command></commands><!– 显示运行命令的输出结果 –><displayCommandOutputs>true</displayCommandOutputs></configuration>--><executions><execution><id>upload-deploy</id><!-- 运行package打包的同时运行upload-single和sshexec --><phase>package</phase><goals><goal>upload-single</goal><goal>sshexec</goal></goals><configuration><!-- 拷贝目录下(执行目录) target目录下的jar包 --><fromFile>target/${project.artifactId}-${project.version}.jar</fromFile>
<!-- <toFile>cd /root</toFile>--><!-- 使用scp传输文件 指定服务端 用户名密码 ip 并指定目标文件夹--><url>scp://${account}:${password}@${ip}/root/服务 </url><!-- 命令列表 可以在传输完成后执行 --><commands><command>mv /root/服务 /lib/${project.artifactId}-${project.version}.jar /root/服务 /lib/${project.artifactId}-${project.version}.${current.time}.jar</command><command>cp /root/ppr/${project.artifactId}-${project.version}.jar /root/服务 /lib/${project.artifactId}-${project.version}.jar</command><command>sh /root/服务 /bin/shutdown.sh </command><command>cd /root/服务 /bin && sh startzl.sh </command></commands><!-- 显示运行命令的输出结果 --><displayCommandOutputs>true</displayCommandOutputs></configuration></execution></executions></plugin>
注意: 细节点
<!-- 使用scp传输文件 指定服务端 用户名密码 ip 并指定目标文件夹--><url>scp://${account}:${password}@${ip}/root/服务 </url><!-- 命令列表 可以在传输完成后执行 --><commands><command>mv /root/服务 /lib/${project.artifactId}-${project.version}.jar /root/服务 /lib/${project.artifactId}-${project.version}.${current.time}.jar</command><command>cp /root/ppr/${project.artifactId}-${project.version}.jar /root/服务 /lib/${project.artifactId}-${project.version}.jar</command><command>sh /root/服务 /bin/shutdown.sh </command><command>cd /root/服务 /bin && sh startzl.sh </command></commands>
url 标签 /root/ppr 是你的jar在测试服的路径
command 标签是 日常部署jar到测试服,所重复操作的命令顺序
解读标签
注: 一定到保证jar名和 脚本中jar名一致。
package 到 /root/服务 目录下
mv 服务 /lib 目录下 的 jar包 更改名称 为 jar.${current.time}.jar
cp 打包到 /root/服务 目录下的 jar 包,复制到 /root/服务 /lib/ 目录下
sh 执行 /root/服务 /bin/ shutdown.sh, 暂停服务
cd /root/服务 /bin sh startzl.sh , 启动服务
也可以设置日志,查看
tail -f nohup.log 服务/bin 目录下 记录的日志 是 nohup.log
Maven 集成 Wagon相关推荐
- 个推无法获取个推id_最新个推Android 推送 SDK Maven 集成
概述 公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业 0.1 年了,Leader 准备把这个简单而又独立的功能点交给我来处理,我紧张兮兮的打开官网集成文档 学习了起来.其 ...
- maven集成spring_Maven集成测试和Spring Restful Services
maven集成spring 介绍 我的原始博客通过一个非常简单的示例展示了如何分离Maven单元和集成测试. http://johndobie.blogspot.com/2011/06/seperat ...
- java maven junit_【JUnit】JUnit 与 maven 集成
环境 JDK 11 JUnit 4.13 Spring Tool Suite 4.6.2 Maven 3.6.3 与 maven 集成 因为已经是 maven 项目了,所以不再需要任何东西,默认就与 ...
- 将Maven集成到IDEA
此刻就把自己在官网上下载的Maven集成到了IDEA,第一次使用Maven需要在远程仓库下载一些东西,点击下图自动下载jar包 如果想看Maven的基础详解可以点击改该链接:Maven基础详解_贺贺学 ...
- 将Maven集成到idea中并创建第一个Maven项目
在将Maven集成到idea中之前,你需要确保你已经安装过了Maven,在DOS下输入mvn -v如果显示如下,则证明已安装,如果没有安装,可以参考Maven的下载安装,如果你不知道Maven的一些基 ...
- jetty服务器原理与maven集成
jetty服务器原理+MyEclipse下与Maven集成 Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境.Jetty是使用Java语 ...
- Maven集成p3c-pmd
简介 Maven集成p3c-pmd 配置 Pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...
- 最新个推Android 推送 SDK Maven 集成
概述 公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业 0.1 年了,Leader 准备把这个简单而又独立的功能点交给我来处理,我紧张兮兮的打开官网集成文档 学习了起来.其 ...
- maven集成tomcat进行web应用测试
1.环境介绍 maven:apache-maven-3.0.3 tomcat:apache-tomcat-6.0.32 jdk:jdk1.5.0_11 eclipse:3.7.2 2.配置to ...
最新文章
- Samba服务器搭建案例
- saiku 3.8 二次开发代码整理步骤(20160727更新)
- 阿里云从0安装mysql到远程连接
- 从国际站 - M 站建设谈开发者产品思维
- hive 配置mysql_Hive的mysql安装配置
- 搜索推荐项目EFLS开源 | 阿里妈妈联邦学习解决方案详解
- Jenkins构建.net项目
- 界面为ScrollView时打开界面会自动滚动到底部之解决方法
- Fireworks快捷键大全和ps查看切图的坐标颜色
- vue使用node-sass@4.9.0时,npm intall出错
- python 斯皮尔曼相关系数_斯皮尔曼等级相关系数(Spearmansrankcorrelationcoefficient)
- 【软件工程】三、软件开发方法学——结构化分析方法
- love~LBJ,奥布莱恩神杯3
- 最短路径(dijistra和floyd算法)
- IDEA 打开窗口切换的快捷键
- 华为交换机重制_华为交换机恢复出厂设置的三种方法
- VUE记录用户切屏次数并弹出提示
- 如何做好一个中小型企业计算机网络管理员
- 揭秘“菲住布渴”中运用的黑科技:除了check in、坐电梯、开门...全部刷脸之外,还有什么?...
- vue+element实现滚动公告栏效果
热门文章
- Linux 桌面驱动 糟糕,糟糕的Nvidia Linux驱动
- VBA 更新自定义安装的加载宏文件版本
- Java 创建一个HashMap对象,并在其中添加学生的姓名和成绩,键为学生姓名,值为学生成绩,使用增强for循环遍历该HashMap,并输出学生成绩。...
- 怎样把酷狗音乐wav转化成高品质的MP3格式?
- Unity3D游戏制作-----环境搭建
- python win32 excel转pdf
- 【转载/翻译】HEVC中的CTU、CU、CTB、CB、PB和TB分别是什么
- 使用adb命令批处理安装卸载apk
- 单片机错误操作导致JLINK无法烧写程序no cortex-m sw device found
- CAD开发-CAD二维配管辅助工具