提高 本地测试打包测试服 且重启动的效率

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>&lt;!&ndash; 拷贝目录下(执行目录) target目录下的jar包 &ndash;&gt;<fromFile>target/${project.artifactId}-${project.version}.jar</fromFile>&lt;!&ndash; 使用scp传输文件 指定服务端 用户名密码 ip 并指定目标文件夹&ndash;&gt;<url>scp://${user}:${password}@${ip}/root/ppr</url>&lt;!&ndash; 命令列表 可以在传输完成后执行 &ndash;&gt;<commands><command>sh /root/服务 /bin/start-jar.sh restart</command></commands>&lt;!&ndash; 显示运行命令的输出结果 &ndash;&gt;<displayCommandOutputs>true</displayCommandOutputs></configuration>

package 之后, 依次执行 wagon 命令, 用哪个服务需要手动执行 其命令

第二种方式

这种打包方式, 切环境 如果没有配置 标签参数时,在执行wagon插件时,将报错,但 不影响正确的jar包的环境
标签 ${} 相关配置在 配置的 下 下 中获取

<plugin><groupId>org.codehaus.mojo</groupId><artifactId>wagon-maven-plugin</artifactId><version>1.0</version><!--<configuration>&lt;!&ndash; 拷贝目录下(执行目录) target目录下的jar包 &ndash;&gt;<fromFile>target/${project.artifactId}-${project.version}.jar</fromFile>&lt;!&ndash; 使用scp传输文件 指定服务端 用户名密码 ip 并指定目标文件夹&ndash;&gt;<url>scp://${user}:${password}@${ip}/root/服务 </url>&lt;!&ndash; 命令列表 可以在传输完成后执行 &ndash;&gt;<commands><command>sh /root/服务 /bin/start-jar.sh restart</command></commands>&lt;!&ndash; 显示运行命令的输出结果 &ndash;&gt;<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  &amp;&amp; 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  &amp;&amp; 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相关推荐

  1. 个推无法获取个推id_最新个推Android 推送 SDK Maven 集成

    概述 公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业 0.1 年了,Leader 准备把这个简单而又独立的功能点交给我来处理,我紧张兮兮的打开官网集成文档 学习了起来.其 ...

  2. maven集成spring_Maven集成测试和Spring Restful Services

    maven集成spring 介绍 我的原始博客通过一个非常简单的示例展示了如何分离Maven单元和集成测试. http://johndobie.blogspot.com/2011/06/seperat ...

  3. java maven junit_【JUnit】JUnit 与 maven 集成

    环境 JDK 11 JUnit 4.13 Spring Tool Suite 4.6.2 Maven 3.6.3 与 maven 集成 因为已经是 maven 项目了,所以不再需要任何东西,默认就与 ...

  4. 将Maven集成到IDEA

    此刻就把自己在官网上下载的Maven集成到了IDEA,第一次使用Maven需要在远程仓库下载一些东西,点击下图自动下载jar包 如果想看Maven的基础详解可以点击改该链接:Maven基础详解_贺贺学 ...

  5. 将Maven集成到idea中并创建第一个Maven项目

    在将Maven集成到idea中之前,你需要确保你已经安装过了Maven,在DOS下输入mvn -v如果显示如下,则证明已安装,如果没有安装,可以参考Maven的下载安装,如果你不知道Maven的一些基 ...

  6. jetty服务器原理与maven集成

    jetty服务器原理+MyEclipse下与Maven集成 Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境.Jetty是使用Java语 ...

  7. Maven集成p3c-pmd

    简介 Maven集成p3c-pmd 配置 Pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...

  8. 最新个推Android 推送 SDK Maven 集成

    概述 公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业 0.1 年了,Leader 准备把这个简单而又独立的功能点交给我来处理,我紧张兮兮的打开官网集成文档 学习了起来.其 ...

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

最新文章

  1. Samba服务器搭建案例
  2. saiku 3.8 二次开发代码整理步骤(20160727更新)
  3. 阿里云从0安装mysql到远程连接
  4. 从国际站 - M 站建设谈开发者产品思维
  5. hive 配置mysql_Hive的mysql安装配置
  6. 搜索推荐项目EFLS开源 | 阿里妈妈联邦学习解决方案详解
  7. Jenkins构建.net项目
  8. 界面为ScrollView时打开界面会自动滚动到底部之解决方法
  9. Fireworks快捷键大全和ps查看切图的坐标颜色
  10. vue使用node-sass@4.9.0时,npm intall出错
  11. python 斯皮尔曼相关系数_斯皮尔曼等级相关系数(Spearmansrankcorrelationcoefficient)
  12. 【软件工程】三、软件开发方法学——结构化分析方法
  13. love~LBJ,奥布莱恩神杯3
  14. 最短路径(dijistra和floyd算法)
  15. IDEA 打开窗口切换的快捷键
  16. 华为交换机重制_华为交换机恢复出厂设置的三种方法
  17. VUE记录用户切屏次数并弹出提示
  18. 如何做好一个中小型企业计算机网络管理员
  19. 揭秘“菲住布渴”中运用的黑科技:除了check in、坐电梯、开门...全部刷脸之外,还有什么?...
  20. vue+element实现滚动公告栏效果

热门文章

  1. Linux 桌面驱动 糟糕,糟糕的Nvidia Linux驱动
  2. VBA 更新自定义安装的加载宏文件版本
  3. Java 创建一个HashMap对象,并在其中添加学生的姓名和成绩,键为学生姓名,值为学生成绩,使用增强for循环遍历该HashMap,并输出学生成绩。...
  4. 怎样把酷狗音乐wav转化成高品质的MP3格式?
  5. Unity3D游戏制作-----环境搭建
  6. python win32 excel转pdf
  7. 【转载/翻译】HEVC中的CTU、CU、CTB、CB、PB和TB分别是什么
  8. 使用adb命令批处理安装卸载apk
  9. 单片机错误操作导致JLINK无法烧写程序no cortex-m sw device found
  10. CAD开发-CAD二维配管辅助工具