1.jenkins简介
1.1.什么是敏捷开发
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
1.2.什么是持续集成(CI)
因为开发部门同时维护多个版本,多个版本的发布,测试需要大量人力,所以要有一个专业的持续集成工具来管理持续重复的工作。
1.3.什么是tomcat热部署
热部署是指在你修改项目BUG的时候对JSP或JAVA类进行了修改在不重启WEB服务器前提下能让修改生效。但是对配置文件的修改除外。
配置tomcat用户名密码,修改tomcat 配置文件tomcat-users.xml
| <role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="chenjian" password="tiger" roles="manager-gui, manager-script"/> |
- 以maven项目实现tomcat热部署
A. 在pom.xml文件中加入下面的配置
| <plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://192.168.153.160:8080/manager/text</url> #远程tomcat地址
<path>/aaa</path>#构建的项目名称,war包名称
<server>tomcat</server>#制定web服务器类型为tomcat
<username>chenjian</username>#tomcat用户名
<password>tiger</password>#tomcat密码
</configuration>
</plugin> |
B. 在pom文件上右键单击
C. 输入下面的构建参数,详细请参考maven配置。单机运行,开始build,
D. 出现下面信息,说明项目构建成功。
E. 检查tomcat热部署结果,可以发现最新的工程已经正常构建并发布到192.168.153.160的tomcat中。
1.4.什么是jenkins
Jenkins是一个持续集成CI工具。它可以持续编译,运行你的代码;运行UT或集成测试;将运行结果发送至邮件,或展示成报告。
Jenkins起源于Hudson。Hudson在商业软件的路上继续前行,而Jenkins则作为开源软件,从hudson分支出来。 因此现在的jenkins和hudson非常类似,但是随着二者各自的发展,已经有了一些不同。
1.5.安装配置jekins(linux)
- 下载jenkins的war包
官网下载地址:https://jenkins.io/index.html
- linux服务器环境准备
a) 在服务器192.168.153.161上安装jdk,tomcat,并配置环境变量
b) 在服务器192.168.153.161上安装svn。
yum -y install svn
c) 在服务器192.168.153.161上安装maven,并配置环境变量。
maven的安装和在windows上安装配置相同,在此不过多解释。
- 将下载好的jenkins war包上传至服务器192.168.153.161的tomcat webapps目录下。打开浏览器如果出现下面老人头像说明jenkins启动成功。
- 初始化配置jenkins
- 配置jdk
- 配置maven
1.6.创建jenkins任务
- 创建第一个jenkins任务
- 项目名称和描述
- 源码管理,配置svn服务器地址
问题一:
问题二:
修改主机名为ip(svn服务器的ip地址)之后,查看jenkins的日志,发现下面的错误,原因是svn服务器需要用户名和密码的认证。点击"enter credential"链接输入svn帐号密码即可。
- 添加maven构建参数,然后保存。返回到主页。
1.7.运行jenkins任务。
jenkins任务开始前,修改代码并提交svn库。
开始运行,单机绿色的开始按钮如下图:
左下角显示构建状态
点击任务名称,进入任务详情页面,注意:第一次构建需要下载很多maven插件和依赖包,大概需要5分钟左右。
返回首页,可以发现任务状态显示成功!
检查目标tomcat状态。正常!!!
1.8.jenkins定时任务
作为项目经理,有些时候为了配合自动化测试,需要在夜间或者其他指定时间定期发布测试物,如果靠人工来完成的话,非常的耗时耗力,jenkins提供了定时执行任务的功能。
下面定义每天晚上23点50分执行任务,满足无人值守自动构建项目。
时间格式的详细说明:
a) 分钟,取值范围(0~59):若其他值不做设定,则表示每个设定的分钟都会构建 如:5 * * * * ,表示每个小时的第5分钟都会构建一次
b) 小时,取值范围(0~23):若其他值不做设定,则表示每个设定小时的每分钟都会构建 如:* 5 * * * ,表示在每天5点的时候,一小时内每一分钟都会构建一次
c) 日期,取值范围(1~31):若其他值不做设定,则表示每个月的那一天每分钟都会构建一次 如:* * 5 * *,表示在每个月5号的时候,0点开始每分钟构建一次
d) 月份,取值范围(1~12):若其他值不做设定,则表示每年的那个月每分钟都会构建一次 如:* * * 5 *,表示在每年的5月份,1号0点开始每分钟构建一次
e) 星期,取值范围(0 ~ 7):若其他值不做设定,则表示每周的那一天几每分钟都会构建一次 如:* * * * 5,表示每周五0点开始每分钟构建一次
1.9.jenkins执行shell脚本
如果想在jenkins任务开始创建之前执行某个shell 脚本,jenkins提供下面的功能