Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。本文以 CentOS7 环境为例,总结了 Jenkins 的安装与配置、邮件功能使用

1.安装JDK自行百度(推荐手动配置环境变量)

2.Maven安装自行百度(推荐手动配置环境变量)

3.SVN安装自行百度

4.Tomcat安装自行百度(我们用的是8.5)

由于我们要进行热部署,tomcat需进行权限用户配置,配置如下:

 

1. 添加 Context

在 $tomcathome/conf/Catalina/localhost/下创建 manager.xml , 填入如下内容:


<Context privileged="true" antiResourceLocking="false" 
         docBase="${catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>


2.添加用户


<role rolename="manager-gui" />
 <role rolename="manager-status" />
 <role rolename="manager-jmx" />
 <role rolename="manager-script"/>
 <role rolename="admin-gui"/>
 <role rolename="admin-script"/>

 <user username="tomcat" password="tomcat" roles="manager-gui,manager-status,manager-jmx,manager-script,admin-gui,admin-script"/>


 

4.安装Jenkins,采用Jenkins war包部署

将Jenkins war包上传至Tomcat webapps目录下,进入Bin目录启动tomcat

5.在浏览器上输入ip地址(http://ip:端口/jenkins)即可访问,如图:

Jenkins部署react集群 jenkins 热部署_Jenkins

6.首次进入jenkins如要输入密码,密码位置:/root/.jenkins/secrets/initialAdminPassword

7.进入选择插件安装界面,选择第一个(Install suggested plugins)

 

Jenkins部署react集群 jenkins 热部署_Jenkins部署react集群_02

Jenkins部署react集群 jenkins 热部署_Jenkins部署react集群_03

 

 

 8.插件安装完成之后,需要创建第一个用户

Jenkins部署react集群 jenkins 热部署_Jenkins_04

  9.创建用户之后,就可以使用jenkins了

       如果插件安装失败,可以去镜像地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins,手动下载,然后通过插件管理中的高级,进行上传

     10.安装相关插件

     Subversion Plug-in ## 版本管理 SVN 的插件

     Git plugin ## 版本管理 GIT 的插件
     Maven Integration plugin ## 项目构建 Maven 的插件
     Gradle Plugin ## 项目构建 Gradle 的插件
     无需重启 Jenkins 插件即生效。如遇失败可重试或离线安装。

Jenkins部署react集群 jenkins 热部署_Jenkins_05

Jenkins部署react集群 jenkins 热部署_Jenkins部署react集群_06

 

 

开始创建

主页:点击“新建”; 
项目类型:输入项目名称 fastjson,类型选择“构建一个Maven项目”(如果没有此项可选,请检查插件“Maven Integration plugin”是否已安装); 

Jenkins部署react集群 jenkins 热部署_Jenkins_07

源码管理

选择“Subversion”(如果没有此项可选,请检查插件“Subversion Plug-in”是否已安装), 
仓库URL可以指定 svn/http/https 之一,这里指定 svn://centos/repo1/fastjson 
Credentials: 添加 SVN 用户名密码,并从下拉列表中选择它。 

Jenkins部署react集群 jenkins 热部署_Jenkins_08

 

 

定时触发构建(不配置也可以,根据自己需求,我是手动发版)

 

## 每行由 5 个值组成(空格或TAB分隔),分别表示分(0-59)、时(0-23)、日(1-31)、月(1-12)、周(0-7, 0/7=周日)
## "M,N" 表示M和N;"M-N" 表示范围[M,N];"M-N/X" 表示范围[M,N]内每隔X;"*/X" 表示整个范围内每隔X
## 前面提到的M/N/X的值都可以用H(意为Hash)代替,散列值起到随机值的效果,且同一项目取值稳定,这对于项目多时分散压力很有用。
H/10  H(0-8)  *  *  1-5   ## 触发时间: 工作日、Hour为0~8按哈希随机、Minute以10为间隔
H/10  H       *  *  0,6,7 ## 触发时间: 周末、Hour为全天按哈希随机、Minute以10为间隔
## “日程表”修改后,下方会给出下次执行时间点的预告。

 

Jenkins部署react集群 jenkins 热部署_war包_09

版本提交触发构建

构建触发器: 只选中 Poll SCM,可指定检查 SVN 代码是否有提交的时间:

## 格式与 "Build periodically" 相同
H/10  *  *  *  *  ## 任何时候,每隔 30 分钟就检测一次 SVN,如果有提交就启动构建

Jenkins部署react集群 jenkins 热部署_tomcat_10

 Build 设置

Root POM: 指定 pom.xml 相对路径 
Goals and options: 指定 mvn 执行目标或选项,设置为 package -Dmaven.test.skip=true(跳过测试)

上述信息提示配置一下maven的安装路径,我们照做即可,顺便配置好jdk路径

 Post Steps 设置

Jenkins部署react集群 jenkins 热部署_Jenkins部署react集群_11

 

定制构建后的操作,通常选择“Run only if build succeeds”,支持 shell 等脚本;

## 脚本工作目录为: /var/lib/jenkins/workspace/fastjson
# sudo systemctl stop tomcat
# sudo cp -f target/*.war /opt/apache-tomcat-8.5.9/webapps/
# sudo systemctl start tomcat
ls -l target/*.?ar

注:我没有按如上设置,我的设置如下

sudo mv ${WORKSPACE}/target/你的war包名称-0.0.1-SNAPSHOT.war ${WORKSPACE}/target/你的war包名称.war

 

Jenkins部署react集群 jenkins 热部署_Jenkins部署react集群_12

手工触发构建

进入 My Views, 右侧看到各个项目; 
点击进入关注的项目,点击左侧的“立即构建”;

 

Jenkins部署react集群 jenkins 热部署_Jenkins_13

 

 开始构建或构建完毕后,左下方列出每次构建的链接,点击进入某次构建; 
点击左侧的“Console Output”,可查看构建日志,如有报错可以看到; 

 

Jenkins部署react集群 jenkins 热部署_war包_14

 

参考:Jenkins使用教程、Jenkins安装(1)、使用jekins自动构建部署java maven项目(jdk1.7+tomcat7.0+jenkins2.19.3)