Jenkins自动构建(CI/DI)项目(一)

因项目是前后端完全分离,因此使用Jenkins构建项目将分为两篇来写,本篇为使用Jenkins自动构架后端项目(maven项目),并自动打包发布,具体操作如下:

1. 访问Jenkins地址,如:127.0.0.1:8080,登录后进入Jenkins首页

Jenkins自动构建(CI/DI)项目(一)

2. 点击新建任务,输入任务名称,选择“构建一个*风格的软件项目”,添加描述信息,选择项目运行节点(可限制)

Jenkins自动构建(CI/DI)项目(一)

3.选择Git,输入git上项目路径,输入分支名称(如:*/dev),并选择相应的凭证

Jenkins自动构建(CI/DI)项目(一)

4. 因本人项目是根据git变化触发,因此没有选择定时或轮询SCM(可支持quartz表达式),可根据项目需要自行配置

Jenkins自动构建(CI/DI)项目(一)

5. 这一步骤比较重要,构建脚本调用、部署都在该步实现。需要编写相关的windows批处理命令(项目部署在windows环境,Linux环境需编写shell脚本),然后保存即可

Jenkins自动构建(CI/DI)项目(一)

附上图代码:

set PROJECT_NAME=mare-device-management-dev
set BUILDSPACE=D:\jenkins\workspace\%PROJECT_NAME%
set SERVICE_NAME=mare-device-management
set SERVICE_VERSION=1.0.0
set EXECSPACE=D:\exec\%SERVICE_NAME%
call %WORKSPACE%\deploy\windows-undocker\deploy.bat %BUILDSPACE% %EXECSPACE% %SERVICE_NAME% %SERVICE_VERSION% 
rmdir /s/q %WORKSPACE%

6. 上述脚本会调用Jenkins所在服务器下,项目中的deploy.bat脚本,脚本位置、内容如下:

Jenkins自动构建(CI/DI)项目(一)

deploy.bat脚本文件内容:

::set PROJECT_NAME=项目名称
::set BUILDSPACE=D:\jenkins\workspace\%PROJECT_NAME%
::set SERVICE_NAME=服务名称
::set SERVICE_VERSION=1.0.0
::set EXECSPACE=D:\exec\%SERVICE_NAME%
::call %WORKSPACE%\deploy\windows-undocker\deploy.bat %BUILDSPACE% %EXECSPACE% %SERVICE_NAME% %SERVICE_VERSION%
::%1=编译目录BUILDSPACE,%2=执行目录EXECSPACE,%3=服务名SERVICE_NAME,%4=服务版本号,具体变量值通过jenkins调用deploy.bat传入,如上述示例所示。

cd /d %1
call mvn clean
call mvn package

cd /d %2
net stop %3
%3 uninstall
del /F /S /Q  %3.jar
del /F /S /Q  %3.xml
del /F /S /Q  %3.exe
xcopy /Y %1\target\%3-%4.jar   %2
xcopy /Y %1\deploy\windows-undocker\%3.xml %2
xcopy /Y %1\deploy\windows-undocker\%3.exe %2

ren %2\%3-%4.jar %3.jar
%3 install
net start %3


PS: bat脚本文件中调用的*.xml、*.exe为winsw(winsw是可以将windows中任何一个程序注册为服务的工具),具体使用方法可参考:https://blog.csdn.net/blvyoucan/article/details/81131234