一、安装必须的插件
- Git 插件,拉取源码使用
- deploy插件,发布应用到Tomcat时使用
二、Jenkins全局配置(Global Tool Configuration)
在【Manage Jenkins】- 【Global Tool Configuration】中配置Maven、Jdk、Git等。界面如下:
- Maven Configuration
配置Maven,选择自己安装的Maven,并配置对应的setting.xml路径。 - JDK
配置JDK安装路径即可,名字可以自定义。 - Git
默认配置即可。 - Maven安装配置
三、创建流水线项目
- 创建项目
点击【首页】- 【New Item】,进入创建项目页面,填写名称,选择“Freestyle project”,然后点击“OK”操作,进入下一步操作。 - 项目General配置
- Source Code Management
这一步需要先安装Git插件,否则不会出现Git选项,安装插件的步骤这里不再重复。这里选择Git,然后配置Git代码库路径,然后新增Credentials,没有创建的话,可以通过“Add”添加即可。 - Build配置
配置通过Maven构建项目的命令。 - Post-build Actions配置
这里是配置需要发布到的Tomcat。首先需要安装deploy插件,不然没有“Deploy war/ear to a container”选项。
首先需要配置Tomcat管理员用户,即在tomcat-users.xml配置文件中,增加如下配置:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin,manager"/>
然后重新启动该Tomcat。通过浏览器访问,如下图所示。
注:该Tomcat不是部署Jenkins的Tomcat。
配置Deploy war/ear to a container相关参数,如下图所示:
其中,War/EAR files指的是maven构建之后的路径,Context path指的是发布后的访问路径,Container指的是web服务器,Manager user name 指的是tomcat的管理用户名,Manager password是Tomcat管理员密码,Tomcat URL指Tomcat的访问的根目录。
四、构建项目
通过【My Views】选择指定的流水线项目,进入到该项目中,如下图所示。
然后,点击【Build Now】开始构建项目,这个时候会出现新的构建记录, 如下图所示,通过“Console Output”可以查看,构建日志。
注:构建记录,红色表示构建识别,蓝色构建成功,闪烁状态表示正在构建中。
五、异常记录
1. ERROR: Error cloning remote repo 'origin’
一般都是Git 用户密码不正确造成的。
2. Server returned HTTP response code: 403 for URL: http://xxxx
该错误存在两种可能性:
1、上述提到的Tomcat管理员用户权限不够
2、远程的Tomcat没有开启远程发布的权限。
第一种情况,按照上述得修改即可。第二种情况,根据下面方式修改:
1>、修改tomcat /webapps/manager/META-INF/context.xml的文件,
把下列内容
<Context antiResourceLocking="false" privileged="true">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>
改成下面内容即可:
<Context antiResourceLocking="false" privileged="true">
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
3. No valid crumb was included in the reques
Jenkins在http请求头部中放置了一个名为.crumb的token。在使用反向代理时,如果Jenkins设置中勾选了“Prevent Cross Site Request Forgery exploits”,代理服务器会认为.crumb为非法头部而去掉,导致跳转失败。
解决方案:
在Jenkins全局安全设置中取消勾选“Prevent Cross Site Request Forgery exploits”,如下图:
4. FAIL - Deployed application at context path /jeesite-icity but context failed to start
当使用Jenkins进行构建的时候报这个错误, 一般是因为代码本身有问题, 可以把Jenkins打好的包放到本地容器中进行验证。