一个springboot项目的jenkins持续集成配置
如何将一个spring boot 项目用jenkins实现自动编译、打包和部署
目录
1.项目基本情况
该项目是 zhangjianfen 同学的软件配置管理期末的项目
项目存储在gitee上,路径:
软件配置管理期末: 1111111111111https://gitee.com/zjf18664209766/project.git
2.jenkins的下载
可请自行百度。或者参考超星班级资料中的详细步骤
1) 安装jdk
请先确保安装了jdk,我安装的是JDK1.8
2)下载、启动和配置jenkins
下载路径:
清华镜像 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不支持
3. 启动Jenkins
在jenkins jar包所在的文件夹下 打开命令行窗口,执行如下命令启动jenkins并指定jenkins端口号为8899:大家也可以根据需要修改端口号
java -jar jenkins_2.346.war --httpPort=8899
4. 安装Jenkins插件
大家可以启动jenkins后,通过jenkins安装插件。也可以将下载的插件放到jenkins主目录的plugins目录下,
在这里为了大家能快速安装插件,大家可以将我的plugins压缩包里的内容复制到你的jenkins
链接:https://pan.baidu.com/s/1NvVoJUsgK1Zc438kQ-kTCw?pwd=6666
提取码:6666
5. 重启jenkins
安装插件后需要重启才能使用插件,在jenkins运行的命令窗口中输入 ctrl+c终止程序,然后再次运行
java -jar jenkins_2.346.war --httpPort=8899
6.jenkins工具的配置
1) jdk的路径配置
7.创建springboot项目的持续集成任务
1) 新建项目
设置项目名称、任务类型(选择自由风格)
2)代码拉取
拉取代码的仓库路径:软件配置管理期末: 1111111111111https://gitee.com/zjf18664209766/project.git
点击 builid now,尝试一下,看能否正常拉取代码
查看控制台详情
3) 打包项目
本项目是maven项目。我们可以用 mvn clean package命令来编译打包
但是需要注意的是,该命令需要在pom.xml文件所在路径执行,所以我们需要在编译打包前切换到该路径
jenkins添加一个 Excute windows batch command的步骤:
输入windows 批处理命令如下,期中 .\表示当前路径,jenkins默认路径就是当前工作区目录:
cd .\04开发\module_campus
mvn clean package
再次构建。确认可否构建出jar包
4)启动jar程序
可以用 java -jar xxxx.jar --server.port=端口号 包的方式来启动程序
但是这样,构建过程将一直处于执行中的状态。所以我们可以增加 start /B 以后台方式运行
当然为了找到jar包,我们需要切换到jar文件所在的路径
在 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中
- start:启动一个新的命令行窗口,以异步方式运行下面的命令。
- /B:以后台模式运行新命令行窗口,即不在当前命令行窗口输出新窗口的信息。
- cmd:运行cmd.exe(Windows命令行解释器)。
- /c:运行完命令后关闭命令行窗口。
- "java -jar module_campus-0.0.1-SNAPSHOT.jar --server.port=8181":要在新命令行窗口中运行的命令。这是一个Java命令,用于启动指定的jar文件,并设置应用程序的运行参数为--server.port=8181。
再次构建。确认构建是否成功,可否通过localhost:8181来访问程序
这时你会发现构建进度到2/3时, localhost:8181可以访问到系统,但构建完成后,又不能再访问了。
这是由于jenkins构建完成后,会终止掉所由它启动的程序。
5)解决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端口上监听的进程。
6)再次build now,验证是否正常
构建后程序运行正常。再次构建,程序还是能正常运行,而且是最新的构建的jar包奥
更多推荐
所有评论(0)