由于远程办公原因,所以我们的服务必须在一个内网,所以就想到使用jenkins来实现提交后自动构建项目启动,不需要再登录到内网操作。
jenkins的安装很简单,网上一大片,然后gitlab我是自己搭建的,我也写了几篇帖子供参考,当然如果项目在github或码云上那就使用这两个的地址也是可以的。
下面我就讲下核心部分,jenkins自动构建项目的部分,也是我花时间最多,遇到坑最多的地方。
#1.相关插件
maven插件就不必说了,是这个东西:
还有这个插件,作用:我们提交代码到平台上(gitlab,github等),自动触发jenkins项目构建,使用这个插件就可以使用token的方式来访问jenkins而不会被拦截然后到登录界面。
所以如果你不需要提交代码自动触发构建重启,当然也可以不需要这个插件了。
#2.实操
下面就是我在项目中真实使用的过程和配置,当然首先创建个maven项目,下面的配置也是基于maven项目来讲的:
#####2.1 仓库信息
代码拉取地址url必须的,然后下面是认证,也就是账号密码,有的话就添加一个,没有就不需要,然后就是分支。
#####2.2 构建触发器
我们主要关注第一个勾选,就是我们之前提的可以在提交完代码之后触发到jenkins然后构建的东西,这里配置的是token,随便写什么都行。
然后复制一下,我们需要到代码仓库端配置一下,我这边使用的是gitlab:
发现这里需要填写一个地址,怎么填写呢?我们需要看下之前说的那个插件的要求
然后我们看下jenkins这个插件的用法(点击插件名字可以进入插件的说明):
可以看到地址填写的方式:
buildByToken/build?job=NAME&token=SECRET
第一个参数跟的是项目名字,第二个就是之前填写的token,拼写好,然后跟着jenkins的ip访问地址,一起拼好,然后放在这里就好。如果想测试的话,把这个地址复制好,然后待会儿都弄好就可以测试下。
这个地址我再详细说下,我在jenkins创建的项目叫做aaa,token我配置的bbb,jenkins访问地址是ip:8080,那么地址: http://IP:8080/buildByToken/build?job=aaa&token=bbb。
#####2.3 构建前配置
我们如果需要重启的话也就是重新构建启动,当然得把之前的线程给杀掉把,不然端口号都占用了,肯定启动不了,所以这里是使用脚本的方式杀进程:
网上太多抄来抄去没法用的脚本了,我总算找到了一个能行的。
@echo off
set port=8082
for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %port%`) do (
if [%%d] EQU [LISTENING] (
set pid=%%e
)
)
if defined pid (
taskkill /f /pid %pid%
)
#####2.4构建后的配置
由于没啥保密的,所以我代码就直接贴出来了:
@echo off
set BUILD_ID=dontKillMe
start javaw -jar C:\ProgramData\Jenkins\.jenkins\workspace\hip\target\hip-0.0.1-SNAPSHOT.jar --spring.profiles.active=test --server.port=8082 &
exit
set BUILD_ID=dontKillMe 这个东西必须要加,不然jenkins在构建完之后就会把java进程杀掉或者干脆不执行。(之前不知道,所以服务一直启动不起来,花了我很多时间去找问题。)
然后下面的执行java的命令就是正常的情况,后面跟了一些我个人因为把一些变量拿出来配置,所以配置的需要的springboot的参数--spring.profiles.active=test --server.port=8082,大家可以根据自己情况搞。就这样没什么了。
仅此记录,给自己温习,同时尽可能帮助大家节省时间,避免踩坑。
分享使我快乐。
标签:插件,配置,springboot,windows,gitlab,地址,token,构建,jenkins From: https://blog.51cto.com/u_15522232/5780465