一款简易CI/DI插件 wagon-maven-plugin


一款简易CI/DI插件 wagon-maven-plugin文章插图
好久没写文章了 , 都忘了自己的初衷了 , 同志们还是要坚持呀 。。。 今天就给大家介绍一款好玩的插件 。 我们在项目开发过程中 , 经常需要部署代码到开发环境 , 每天可能有好多次 , 每次都需要mvn clean package/install , 然后上传到服务器 , 重启容器 。 为解决这些繁琐的步骤 , 除了常用的Jenkins、TeamCity、Travis CI等比较重型的CI/DI集成工具外 , 我们还可以用wagon-maven-plugin这个插件来完成 。
【一款简易CI/DI插件 wagon-maven-plugin】下面我们去官网看看 , 这个插件是什么和能干什么?
OverviewUse this plugin to view and transfer resources between repositories using Maven Wagon.
Goals OverviewThe Wagon Maven Plugin has the following goals.

  • wagon:upload-single uploads the specified file to a remote location.
  • wagon:upload uploads the specified set of files to a remote location.
  • wagon:download-single downloads the specified file from a remote location.
  • wagon:download downloads the specified set of files from a remote location.
  • wagon:list lists the content of a specified location in a remote repository.
  • wagon:copy copies a set of files under a Wagon repository to another.
  • wagon:merge-maven-repos merges , including metadata, a Maven repository to another.
  • wagon:sshexec Executes a set of commands at remote SSH host
简单概括 , 它能在存储库之间查看和传输资源 。 这正是我们想要的(我们本地和服务器本质就是两个存储库) 。 其中标蓝颜色的两个goal , 是我们常用的 , 下面我们进行项目实战 。
首先添加Maven Wagon SSH这个东东可以为Wagon插件 , 提供scp和SFTP的能力 。 这样我们就可以发布和部署程序到服务器上 。
org.apache.maven.wagonwagon-ssh2.8配置插件 , 绑定package周期org.codehaus.mojowagon-maven-plugin1.0upload-deploypackageupload-singlesshexectarget/oceanviewAdmin-1.0-SNAPSHOT.jarscp://user:password@url/optpkill -f test.jarnohup java -jar /opt/test.jar >/opt/test.out 2>&1 &true还有其他一些参数 , 比如project、settings、skip等因为不常用 , 我们就不在一一举例 。
运行 mvn package运行完后 , 我们发现我们本地的程序已经自动部署到服务器上了 。
完毕!欢迎小伙伴们 , 在评论区一起交流.