安装
windows下安装:https://blog.csdn.net/u014641168/article/details/130286547
linux下安装:https://blog.csdn.net/u014641168/article/details/130282439
Jenkins支持JDK1.8对应版本说明:https://blog.csdn.net/u014641168/article/details/130286060
新建
新建Item:
在源码管理设置模块,选择Git,然后输入Gitee项目仓库地址,如下图:
继续往下翻,构建触发器处,勾选Poll SCM,并输入如下信息:
* * * * *
如下:
5个星号这是什么意思?
这5个符号的位置,分别表示分、时、日、月、周
上图中的五个*,其含义已由黄色字体显示,表示每分钟轮询一次Gitee仓库,如果仓库有更新,则重新拉取项目,进行持续集成与持续部署。
如果输入H/5 * * * *,则表示每5分钟轮询一次。
继续下翻,Build处,添加如下格式的Goals and options:
clean package -DskipTests install
勾选 “使用自定义的工作空间” ,这里意思就是自动克隆git代码到这个文件夹下。如下:
继续往下翻,POST Steps 处,勾选 Run regardless of build result,然后添加构建步骤(Add post-build step),选择执行Windows批处理命令(Execute Windows batch command),然后输入下面内容:
@echo off
set BUILD_ID=DONTKILLME
set port=8001
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do taskkill /pid %%m -t -f
xcopy C:\Users\it206\.jenkins\workspace\JenkinsTest\target\sp-test.jar F:\jenkins\workspace\JenkinsTest\ /Y
echo 复制jar包完成
echo 执行【sp-test.jar】---开始
start javaw -jar F:\jenkins\workspace\JenkinsTest\sp-test.jar >> springboot.log 2>&1 &
echo 执行【sp-test.jar】---结束
exit
相关参数介绍:
1、set BUILD_ID=DONTKILLME
Jenkins默认会在Build结束后Kill掉所有的衍生进程,设置不要kill
2、xcopy 源文件 目的文件
将源文件复制到目标文件夹下
为什么要复制一份?
下次构建的时候,需要删除现有的jar,重新构建新的jar;如果直接运行生成的jar,下次构建的时候,无法删除,构建失败。
3、echo xxx
这里只是在jenkins的控制台输出日志信息
4、start javaw -jar xxx.jar & 这里是告诉系统,我的jar文件是后台执行,最后的符号 & 一定要加,否则jenkins会认为任务结束,会把我们的jar强制kill掉
如下:
最后点击【保存】按钮,然后开始构建:
这样查看日志:
然后就可以看到日志详情了:
也可以在首页进行构建:
然后看本地磁盘,jar包已经复制到我指定目录了:
但是我指定的日志文件还是回生成在Jenkins的默认目录,如下:
测试
我Gitee上的SpringBoot项目地址是:https://gitee.com/colinWu_java/JenkinsTest.git
测试接口代码如下:
package cn.itsource.controller;
import org.springframework.web.bind.annotation.*;
/**
* <p>TestController</p>
*
* @author tongyao
*/
@RestController
public class TestController {
@GetMapping("/test")
public String test(){
return "欢迎来到SpringBoot奇妙世界!";
}
}
然后Jenkins构建后就访问页面,如下:
完美,可以正常显示接口的返回数据,部署成功了,然后我们修改一下接口的返回数据,改成下面这样:
package cn.itsource.controller;
import org.springframework.web.bind.annotation.*;
/**
* <p>TestController</p>
*
* @author tongyao
*/
@RestController
public class TestController {
@GetMapping("/test")
public String test(){
return "欢迎来到SpringBoot奇妙世界!Jenkins学习";
}
}
然后代码提交到gitee,等一分钟后,再刷新页面,看页面如下:
内容是我们修改后的值,说明Jenkins确实重新拉取项目重新部署了,nice啊,以后我们修改完代码后直接提交就可以了,部署就不用管了,是不是很香
问题
如果你Jenkins的控制台中出现如下日志信息:
在全局安全配置里面,勾选上这个参数即可: