Jenkins把java项目打包成jar包并复制到多个服务器上

背景

我需要把一个java的maven项目打包成jar包,并把jar包拷贝到多个windows服务器上,是windows不是Linux

实现的功能

1,当push代码到gitlab仓库时,会自动触发Jenkins job

2,Jenkins job会自动把maven项目打包成jar包

3,把jar包拷贝到远程的windows服务器上

步骤详情

1, 新建一个maven项目 

如果找不到maven project选项,需要下载插件Maven Integration plugin

《Jenkins把java项目打包成jar包并复制到多个服务器上》

2,不着急写job的配置,先把其他工具配置好

去到Manage Jenkins –> Global Tool Configuration –> Maven

我是指向了自己安装的maven,当然也可以选择Jenkins自动帮你安装maven

《Jenkins把java项目打包成jar包并复制到多个服务器上》

去到Manage Jenkins –> Global Tool Configuration –> Maven Configuration

里面的路径你们根据自己的情况写,setting文件放哪就写哪,

《Jenkins把java项目打包成jar包并复制到多个服务器上》

去到Manage Jenkins –> System Configuration –> Publish over SSH

这里配置的是需要拷贝文件的服务器上,也就是说,你想把文件拷贝到哪些服务器,这里就配置哪些服务器

如果你找不到,说明你需要安装插件Publish Over SSH,但凡是找不到的看但是看别人又有,那就是要安装插件了。

我这Jenkins SSH key 啥都没填的,我当时还费了很多时间百度看这些选项怎么填,但是没填我也能行的,如果你们不行,那就自行百度这些选项该怎么写吧

《Jenkins把java项目打包成jar包并复制到多个服务器上》

SSH server这里的name随便写,但是我写的是跟hostname一样的方便识别,hostname就是写服务器的hostname,username写是用什么账号登录服务器的那个账号名,remote directory这里只能写\,如果是windows机器,只能写\,我也不知道为啥,写其他会报错。如果你想把文件放到某个指定的地方,可以看我另一篇博客。https://blog.csdn.net/fenger_c/article/details/116059438。你想加几台服务器就加几台,随便加。

《Jenkins把java项目打包成jar包并复制到多个服务器上》

3, 写刚刚创建的maven project里面的配置

配置git仓库

《Jenkins把java项目打包成jar包并复制到多个服务器上》

配置webhooks,怎么配置这里不详细介绍了,百度很多的,需要注意的是,Jenkins上写的webhook url是localhost,但是我们在gitlab仓库要把localhost改成Jenkins所在的机器的IP地址

这步的目的是实现当push代码到gitlab仓库时,就会自动触发这个Jenkins job。

《Jenkins把java项目打包成jar包并复制到多个服务器上》

《Jenkins把java项目打包成jar包并复制到多个服务器上》

打包成jar包

Goals and options这个可以不填的,但是我是求稳,我就写了clean install,大家也可以试一下不填是否满足了大家的需求。

《Jenkins把java项目打包成jar包并复制到多个服务器上》

拷贝文件到远程机器

在Post-build Actions加Send build artifacts over SSH 

SSH Sever就是刚刚在配置的那些服务器咯,Source files是指你要拷贝的文件,我要拷贝的是jar包,而jar包一直就在target目录下,所以一般写target/*.jar是没错的。

Remove prefix的我写的是target的,因为刚刚那步是Source files连target这个目录也拷贝过去了,但是我不想要这个目录,只想要jar包,所以这里填的是target。

Remote directory这里填的是\,我之前也提到过,这个不能改,但是我要把jar包转到其他目录下,所以我在exec commond写了个bat脚本,exec commond这个选项不是必须的,根据自己的需求来。

《Jenkins把java项目打包成jar包并复制到多个服务器上》

以上改实现的功能都实现了,跑完之后,jar包就放到自己的写的配饰SSH Sever的那个testauto的目录下。

如果要把放到其他目录下,请参考我的另外一篇博客:https://blog.csdn.net/fenger_c/article/details/116059438

    原文作者:web小奶精
    原文地址: https://blog.csdn.net/fenger_c/article/details/116060057
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞