Jenkins 持续集成(Maven+Git+Tomcat)

Jenkins官网: https://jenkins.io/index.html

官方文档:https://wiki.jenkins-ci.org/display/JENKINS/Home

jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的”自动化”编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成。

网上对于Jenkins1.x的资料较多,但是对于Jenkins2.x的资料较少,而这两个版本之间变化还是很大的。

下载后是一个war包(也可以选择windows installer包,最新版本目前没有提供)
将war包放进tomcat即可。

初始化配置

访问,如:localhost:8088/jenkins

第一次要求输入密码,初始密码在${USER_HOME}.jenkins\secrets\initialAdminPassword文件中查看

首次访问会处于一直等待中,是因为站点网址是国外服务器,因为墙的原因,下载初始化界面所需插件不了,就一直处于等待状态

解决办法
在$JENKINS_HOME/hudson.model.UpdateCenter.xml文件中,默认内容如下

<?xml version='1.0' encoding='UTF-8'?>
 <sites>
   <site>
    <id>default</id>
    <url>http://updates.jenkins-ci.org/update-center.json</url>
   </site>
</sites

把url改为http://mirror.xmission.com/jenkins/updates/update-center.json就解决了

配置JDK、Git、Maven等

初始化配置完成后进入管理页面,进入系统管理的全局工具配置(如下图),配置jdk
这里写图片描述

配置JDK:可以配置自己安装的,也可以让jenkins自动安装,我选择的配置自己安装的,不勾选自动安装(下同)
这里写图片描述

配置Git
这里写图片描述

配置Maven
这里写图片描述

还可以配置其他第三方工具ant,svn等。

创建一个新任务

1、创建一个自由风格的新任务

2、配置Git
这里写图片描述
Repository URL :源码路径,就是在github克隆代码的路径
Credentials:认证(密码或密钥)

3、配置构建触发器
这里写图片描述
我这里配置的是每隔一段时间自动构建一次,也有其他选项

时间规则:

MINUTE    Minutes within the hour (059)
HOUR    The hour of the day (023)
DOM    The day of the month (131)
MONTH    The month (112)
DOW    The day of the week (07) where 0 and 7 are Sunday.

指定顺序为MINUTE HOUR DOM MONTH DOW

在某个域指定多个值的规则是:

* specifies all valid values
M-N specifies a range of values
M-N/X or */X steps by intervals of X through the specified range or whole valid range
A,B,...,Z enumerates multiple values

如果要定期执行任务,必须提供H (for “hash”)标识。

比如0 0 * * 会在同一时间执行所有任务,而使用H H * *也会在每天执行一次任务,但是并不是同一时间,这样就可以节省很多资源。

H还可以用于范围:H H(0-7) * * * 标识在每天12:00-7:59之间的某个时间执行任务。
H * * * * 代表每个小时执行一次
H/15 * * * *每15分钟执行一次。

4、配置构建
我用的是Maven,这里用Maven构建
这里写图片描述
Maven Version:Maven版本,可以选择我们配置好的Maven
Goals:Maven执行命令,为空默认是install

5、配置构建后操作,这里配置自动部署到远程Tomcat
1)去系统管理插件管理下载deploy to container plugin 插件
2)在构建后操作的选项中选择Deploy war/ear to container
3)配置war名称、上下文路径和Tomcat
WAR/EAR files :war包的相对路径
Context path:上下文名称,就是在tomcat webapp下的文件名称,localhost:8080/personnel,可以为空

下图是配置到tomcat下personnel,就是把war包部署到webapp下,自动生成personnel项目
这里写图片描述

注意: 配置tomcat要有管理权限
1)配置有管理权限的用户
到tomcat下面conf/tomcat-users.xml里面配置用户名密码

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-gui" />
  <role rolename="manager-script" />
  <role rolename="manager-status" />
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="admin" password="admin" roles="admin,manager-gui,manager-script,manager-status" />

2)tomcat 工程目录下默认是 webapp 必须有 manager 工程 ,如果修改了路径 需要将 manager 工程拷贝到tomcat的新设置的工程路径

3)tomcat部署成功后,控制台会输出一下信息
这里写图片描述

未解决问题:
无法自动部署到tomcat的ROOT项目下面,查了一下就看到一个前辈博客把war命名为ROOT.war,但第二次更新时,不会自动覆盖原ROOT.war,需要写脚本把原ROOT.war删除,有人说是tomcat有自己的保护机制,不允许用户部署到ROOT项目。如果纳为大神知道,请指教。
解决:
刚想起来,以前配置过把项目部署到ROOT项目下,修改配置文件,让ROOT项目指向你想访问的项目。这样就解决了怎么自动部署到ROOT项目下的问题了。

web项目发布至tomcat的ROOT下方法:
https://blog.csdn.net/qq_32337109/article/details/78436487

猜你喜欢

转载自blog.csdn.net/qq_32337109/article/details/80347106