Jenkins+maven+Git实现源码的部署和发布

一、安装必须的插件
  1. Git 插件,拉取源码使用
  2. deploy插件,发布应用到Tomcat时使用
二、Jenkins全局配置(Global Tool Configuration)

在【Manage Jenkins】- 【Global Tool Configuration】中配置Maven、Jdk、Git等。界面如下:
Jenkins+maven+Git实现源码的部署和发布_第1张图片

  1. Maven Configuration

    配置Maven,选择自己安装的Maven,并配置对应的setting.xml路径。
    Jenkins+maven+Git实现源码的部署和发布_第2张图片

  2. JDK
    配置JDK安装路径即可,名字可以自定义。
    Jenkins+maven+Git实现源码的部署和发布_第3张图片

  3. Git
    默认配置即可。
    Jenkins+maven+Git实现源码的部署和发布_第4张图片

  4. Maven安装配置
    Jenkins+maven+Git实现源码的部署和发布_第5张图片

三、创建流水线项目
  1. 创建项目
    点击【首页】- 【New Item】,进入创建项目页面,填写名称,选择“Freestyle project”,然后点击“OK”操作,进入下一步操作。
    Jenkins+maven+Git实现源码的部署和发布_第6张图片

  2. 项目General配置
    Jenkins+maven+Git实现源码的部署和发布_第7张图片

  3. Source Code Management
    这一步需要先安装Git插件,否则不会出现Git选项,安装插件的步骤这里不再重复。这里选择Git,然后配置Git代码库路径,然后新增Credentials,没有创建的话,可以通过“Add”添加即可。Jenkins+maven+Git实现源码的部署和发布_第8张图片

  4. Build配置
    配置通过Maven构建项目的命令。
    Jenkins+maven+Git实现源码的部署和发布_第9张图片

  5. Post-build Actions配置
    这里是配置需要发布到的Tomcat。首先需要安装deploy插件,不然没有“Deploy war/ear to a container”选项。
    Jenkins+maven+Git实现源码的部署和发布_第10张图片
    首先需要配置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。

Jenkins+maven+Git实现源码的部署和发布_第11张图片
配置Deploy war/ear to a container相关参数,如下图所示:
其中,War/EAR files指的是maven构建之后的路径,Context path指的是发布后的访问路径,Container指的是web服务器,Manager user name 指的是tomcat的管理用户名,Manager password是Tomcat管理员密码,Tomcat URL指Tomcat的访问的根目录。

Jenkins+maven+Git实现源码的部署和发布_第12张图片

四、构建项目

通过【My Views】选择指定的流水线项目,进入到该项目中,如下图所示。
Jenkins+maven+Git实现源码的部署和发布_第13张图片
然后,点击【Build Now】开始构建项目,这个时候会出现新的构建记录, 如下图所示,通过“Console Output”可以查看,构建日志。

注:构建记录,红色表示构建识别,蓝色构建成功,闪烁状态表示正在构建中。

Jenkins+maven+Git实现源码的部署和发布_第14张图片
Jenkins+maven+Git实现源码的部署和发布_第15张图片

五、异常记录

1. ERROR: Error cloning remote repo 'origin’
Jenkins+maven+Git实现源码的部署和发布_第16张图片
一般都是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">
  
Context>

参考文档:《The username you provided is not allowed to use the text-based Tomcat Manager (error 403) when deploying on remote Tomcat8 using Jenkins》

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”,如下图:
Jenkins+maven+Git实现源码的部署和发布_第17张图片
4. FAIL - Deployed application at context path /jeesite-icity but context failed to start
  当使用Jenkins进行构建的时候报这个错误, 一般是因为代码本身有问题, 可以把Jenkins打好的包放到本地容器中进行验证。

你可能感兴趣的:(DevOps,jenkins,自动化部署,DevOps)