背景
我需要把一个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
2,不着急写job的配置,先把其他工具配置好
去到Manage Jenkins --> Global Tool Configuration --> Maven
我是指向了自己安装的maven,当然也可以选择Jenkins自动帮你安装maven
去到Manage Jenkins --> Global Tool Configuration --> Maven Configuration
里面的路径你们根据自己的情况写,setting文件放哪就写哪,
去到Manage Jenkins --> System Configuration --> Publish over SSH
这里配置的是需要拷贝文件的服务器上,也就是说,你想把文件拷贝到哪些服务器,这里就配置哪些服务器
如果你找不到,说明你需要安装插件Publish Over SSH,但凡是找不到的看但是看别人又有,那就是要安装插件了。
我这Jenkins SSH key 啥都没填的,我当时还费了很多时间百度看这些选项怎么填,但是没填我也能行的,如果你们不行,那就自行百度这些选项该怎么写吧
SSH server这里的name随便写,但是我写的是跟hostname一样的方便识别,hostname就是写服务器的hostname,username写是用什么账号登录服务器的那个账号名,remote directory这里只能写\,如果是windows机器,只能写\,我也不知道为啥,写其他会报错。如果你想把文件放到某个指定的地方,可以看我另一篇博客。https://blog.csdn.net/fenger_c/article/details/116059438。你想加几台服务器就加几台,随便加。
3, 写刚刚创建的maven project里面的配置
配置git仓库
配置webhooks,怎么配置这里不详细介绍了,百度很多的,需要注意的是,Jenkins上写的webhook url是localhost,但是我们在gitlab仓库要把localhost改成Jenkins所在的机器的IP地址。
这步的目的是实现当push代码到gitlab仓库时,就会自动触发这个Jenkins job。
打包成jar包
Goals and options这个可以不填的,但是我是求稳,我就写了clean install,大家也可以试一下不填是否满足了大家的需求。
拷贝文件到远程机器
在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这个选项不是必须的,根据自己的需求来。
以上改实现的功能都实现了,跑完之后,jar包就放到自己的写的配饰SSH Sever的那个testauto的目录下。
如果要把放到其他目录下,请参考我的另外一篇博客:https://blog.csdn.net/fenger_c/article/details/116059438