目录
1.项目基本情况
2.jenkins的下载
1) 安装jdk
2)下载、启动和配置jenkins
3. 启动Jenkins
4. 安装Jenkins插件
5. 重启jenkins
6.jenkins工具的配置
1) jdk的路径配置
7.创建springboot项目的持续集成任务
1) 新建项目
2)代码拉取
3) 打包项目
4)启动jar程序
5)解决jenkins构建结束后终止所有它启动进程的问题
6)再次build now,验证是否正常
该项目是 zhangjianfen 同学的软件配置管理期末的项目
项目存储在gitee上,路径:
软件配置管理期末: 1111111111111https://gitee.com/zjf18664209766/project.git
可请自行百度。或者参考超星班级资料中的详细步骤
请先确保安装了jdk,我安装的是JDK1.8
下载路径:
清华镜像 Index of /jenkins/war/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
下载想要的版本,建议:2.364.1 LTS
注意,jenkins的版本和jdk版本
Jenkins是java程序,需要和jdk的版本匹配。学校计算机机房jdk版本1.8,所以jenkins建议选择2.364.1,否则版本太高的jenkins不支持
在jenkins jar包所在的文件夹下 打开命令行窗口,执行如下命令启动jenkins并指定jenkins端口号为8899:大家也可以根据需要修改端口号
java -jar jenkins_2.346.war --httpPort=8899
大家可以启动jenkins后,通过jenkins安装插件。也可以将下载的插件放到jenkins主目录的plugins目录下,
在这里为了大家能快速安装插件,大家可以将我的plugins压缩包里的内容复制到你的jenkins
链接:https://pan.baidu.com/s/1NvVoJUsgK1Zc438kQ-kTCw?pwd=6666
提取码:6666
安装插件后需要重启才能使用插件,在jenkins运行的命令窗口中输入 ctrl+c终止程序,然后再次运行
java -jar jenkins_2.346.war --httpPort=8899
拉取代码的仓库路径:软件配置管理期末: 1111111111111https://gitee.com/zjf18664209766/project.git
点击 builid now,尝试一下,看能否正常拉取代码
查看控制台详情
本项目是maven项目。我们可以用 mvn clean package命令来编译打包
但是需要注意的是,该命令需要在pom.xml文件所在路径执行,所以我们需要在编译打包前切换到该路径
jenkins添加一个 Excute windows batch command的步骤:
输入windows 批处理命令如下,期中 .\表示当前路径,jenkins默认路径就是当前工作区目录:
cd .\04开发\module_campus
mvn clean package
再次构建。确认可否构建出jar包
可以用 java -jar xxxx.jar --server.port=端口号 包的方式来启动程序
但是这样,构建过程将一直处于执行中的状态。所以我们可以增加 start /B 以后台方式运行
在 excute windows batch command步骤,输入的内容如下
cd .\04开发\module_campus\target
start /B cmd /c "java -jar module_campus-0.0.1-SNAPSHOT.jar --server.port=8181 "
具体含义如下:
cd命令用于切换当前目录到 当前目录的 子目录04开发\module_campus\target中
再次构建。确认构建是否成功,可否通过localhost:8181来访问程序
这时你会发现构建进度到2/3时, localhost:8181可以访问到系统,但构建完成后,又不能再访问了。
这是由于jenkins构建完成后,会终止掉所由它启动的程序。
为了解决该问题,在 Manage Jenkins -> Configure System -> Global properties 全局属性 页面 ,我们可以为jenkins添加一个全局变量BUILD_ID,值为allow_to_run_as_daemon
此时若再次build now,程序可以正常访问。
6)解决再次build now时,由于jar包正在运行,无法构建新包的问题
为了解决此问题,我们需要在构建之前终止应用程序,
之前我们启动程序时设置了端口8181,现在我们可以通过端口8181来找到进程,从而关闭它
其中,输入的命令为:
FOR /F "tokens=5" %%P IN ('netstat -ano ^| findstr :8181') DO taskkill /F /PID %%P || exit 0
具体含义是:
FOR /F "tokens=5" %%P IN ('netstat -ano ^| findstr :8181') :这个命令使用了FOR循环和netstat命令,通过管道符将netstat的输出传递给findstr命令,找到在本地8181端口上监听的进程ID。
DO taskkill /F /PID %%P :这个命令使用了DO关键字,执行taskkill命令,并强制结束找到的进程ID。
|| exit 0:这个命令是一个错误处理语句,如果上一个命令执行失败,则退出程序,否则返回0表示执行成功。
总之,该命令的作用是强制结束在本地8181端口上监听的进程。
构建后程序运行正常。再次构建,程序还是能正常运行,而且是最新的构建的jar包奥