Jenkins自动化部署 - windwos

Jekins自动化部署 - windows

下载

msi安装 war文件

安装

此教程采用war包形式安装,需下载tomcat

1、安装前准备

安装JDK,配置环境变量

安装maven,配置环境变量

安装git

安装tomcat

创建Jenkins目录

2、修改tomcat配置

来到tomcat安装目录下的conf目录,打开context.xml

<Environment name="JENKINS_HOME" value="D:\install_programer\Jenkins" type="java.lang.String"/>

这里的目的是通过Web容器的管理工具设置JENKINS_HOME环境参数来修改Jenkins的主目录

随后将jenkins.war复制到tomcat的webapp目录下

返回上一级来到bin目录,找到startup.bat,双击启动

3、启动

启动成功,浏览器输入localhost:8080/jenkins

从上面提示目录找到密码,并复制到页面,点击继续

注意事项

如果启动时cmd窗口报错 Upgrading Jenkins. Failed to update the default Update Site 'default'.或者当前实例已离线,请尝试到Jenkis主目录下找到hudson.model.UpdateCenter.xml打开修改url

http://updates.jenkins.io/update-center.json

4、配置

进入首页,点击Manage Jenkins,点击Global Tool configuration修改配置

设置Maven配置文件所在路径

设置JDK所在路径

配置Maven目录

![](img/jenkins/QQ截图

5、构建

点击新建Item,创建一个自由风格的项目

配置代码仓库地址,添加凭据,用户名密码为代码仓库登录用户

点击构建触发器,选中Poll SCM

POll SCM:定时检查源码变更,发生变更就从代码仓库拉取最新的代码,执行构建
Build periodically:周期进行项目构建(源码是否发生变化没有关系)
定时构建语法:
第一颗*表示分钟,取值0~59
第二颗*表示小时,取值0~23
第三颗*表示一个月的第几天,取值1~31
第四颗*表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

1.每30分钟构建一次:

H/30 * * * *

2.每2个小时构建一次

H H/2 * * *

3.每天早上8点构建一次

0 8 * * *

4.每天的8点,12点,22点,一天构建3次

0 8,12,22 * * *

点击构建,选中Execute Windows batch command,添加windows批处理命令

start.bat脚本仅供参考

@echo off
rem 创建jar包、解释器目录
set jarDir=execute
set interpreter=%jarDir%\interpreter
if not exist %interpreter% (
	md %interpreter%
	copy %JAVA_HOME%\bin\javaw.exe %interpreter% 
)

rem 复制jar包到jar包执行目录
copy /Y register-center\eureka-server\target\eureka-server.jar %jarDir%\eureka-server.jar
copy /Y api-gateway\target\api-gateway.jar %jarDir%\api-gateway.jar
copy /Y oauth-center\auth-server\target\auth-server.jar %jarDir%\auth-server.jar
copy /Y business-center\user-center\target\user-center.jar %jarDir%\user-center.jar
copy /Y business-center\file-center\target\file-center.jar %jarDir%\file-center.jar
copy /Y web-portal\back-center\target\back-center.jar %jarDir%\back-center.jar
copy /Y business-center\exam-center\target\exam-center.jar %jarDir%\exam-center.jar
copy /Y business-center\paper-center\target\paper-center.jar %jarDir%\paper-center.jar
copy /Y business-center\forum-center\target\forum-center.jar %jarDir%\forum-center.jar
copy /Y business-center\points-center\target\points-center.jar %jarDir%\points-center.jar
copy /Y business-center\signIn-center\target\signIn-center.jar %jarDir%\signIn-center.jar
copy /Y business-center\study-center\target\study-center.jar %jarDir%\study-center.jar
copy /Y business-center\task-center\target\task-center.jar %jarDir%\task-center.jar


setlocal enabledelayedexpansion
rem 服务启动优先队列
set priorityQueue[0]=eureka-server
set priorityQueue[1]=api-gateway
set priorityQueue[2]=auth-server
set priorityQueue[3]=user-center
set priorityQueue[4]=file-center
set priorityQueue[5]=back-center
set priorityQueue[6]=exam-center
set priorityQueue[7]=forum-center
set priorityQueue[8]=paper-center
set priorityQueue[9]=points-center
set priorityQueue[10]=signIn-center
set priorityQueue[11]=study-center
set priorityQueue[12]=task-center


for /l %%i in (0,1,12) do (
  ren %interpreter%\*.exe !priorityQueue[%%i]!.exe
  call :killServer !priorityQueue[%%i]!
  start %interpreter%\!priorityQueue[%%i]! -Dhudson.util.ProcessTree.disable=true -jar -Xms128m -Xmx128m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCTimeStamps -XX:+PrintGCDetails %jarDir%\!priorityQueue[%%i]!.jar
  choice /t 15 /d y /n >nul
)

exit 0

rem 终止已运行的目标服务
:killServer
  for /f "skip=3 tokens=2" %%j in ('tasklist /fi "imagename eq %1.exe"') do @set "pid=%%j" (
	if not "%pid%"=="""" taskkill -PID %pid% /f
  )
  set pid=""
goto :eof

注意在执行脚本前后添加以下命令, Jenkins的默认行为 :构建完成后会杀掉脚本产生的衍生进程, 在执行 shell输入框中加入BUILD_ID=dontKillMe ,即可防止jenkins杀死启动的进程
临时改变BUILD_ID值,使得jenkins不会找到并结束掉run.sh启动的后台进程

set OLD_BUILD_ID=%BUILD_ID%
set BUILD_ID=DONTKILLME

call start.bat

set BUILD_ID=%OLD_BUILD_ID%
echo %BUILD_ID%

点击保存build now启动构建

posted @ 2021-03-18 09:57  向零  阅读(294)  评论(0编辑  收藏  举报