×

jenkins 自动构建

Jenkins之30分钟搞定软件开发持续集成及自动构建

我的笔记 我的笔记 发表于2018-02-19 11:24:26 浏览3522 评论0

抢沙发发表评论

1. jenkins简介

1.1. 什么是敏捷开发

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

1.2. 什么是持续集成(CI)

因为开发部门同时维护多个版本,多个版本的发布,测试需要大量人力,所以要有一个专业的持续集成工具来管理持续重复的工作。

wps87B4.tmp.png 

1.3. 什么是tomcat热部署

1) 热部署是指在你修改项目BUG的时候对JSP或JAVA类进行了修改在不重启WEB服务器前提下能让修改生效。但是对配置文件的修改除外。

2) 配置tomcat用户名密码,修改tomcat 配置文件tomcat-users.xml

<role rolename="manager-gui"/>

<role rolename="manager-script"/>

<user username="chenjian" password="tiger" roles="manager-gui, manager-script"/>

3) 以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文件上右键单击

wps87B4.tmp.png 

C. 输入下面的构建参数,详细请参考maven配置。单机运行,开始build,

wps87B5.tmp.png 

D. 出现下面信息,说明项目构建成功。

wps87B6.tmp.png 

E. 检查tomcat热部署结果,可以发现最新的工程已经正常构建并发布到192.168.153.160的tomcat中。

wps87B7.tmp.png 

1.4. 什么是jenkins

1) Jenkins是一个持续集成CI工具。它可以持续编译,运行你的代码;运行UT或集成测试;将运行结果发送至邮件,或展示成报告。

2) Jenkins起源于Hudson。Hudson在商业软件的路上继续前行,而Jenkins则作为开源软件,从hudson分支出来。 因此现在的jenkins和hudson非常类似,但是随着二者各自的发展,已经有了一些不同。

1.5. 安装配置jekins(linux)

1) 下载jenkins的war包

官网下载地址:https://jenkins.io/index.html

wps87B8.tmp.png 

2) linux服务器环境准备

a) 在服务器192.168.153.161上安装jdk,tomcat,并配置环境变量

wps87B9.tmp.png 

b) 在服务器192.168.153.161上安装svn。

yum -y install svn

wps87BA.tmp.png 

c) 在服务器192.168.153.161上安装maven,并配置环境变量。

maven的安装和在windows上安装配置相同,在此不过多解释。

wps87BB.tmp.png 

3) 将下载好的jenkins war包上传至服务器192.168.153.161的tomcat webapps目录下。打开浏览器如果出现下面老人头像说明jenkins启动成功。

wps87CC.tmp.png 

4) 初始化配置jenkins

wps87CD.tmp.png 

5) 配置jdk

wps87CE.tmp.png 

wps87CF.tmp.png 

6) 配置maven

wps87D0.tmp.png 

1.6. 创建jenkins任务

wps87D1.tmp.png 

1) 创建第一个jenkins任务

wps87D2.tmp.png 

2) 项目名称和描述

wps87D3.tmp.png 

wps87D4.tmp.png 

3) 源码管理,配置svn服务器地址

问题一:

wps87E5.tmp.png 

wps87E6.tmp.png 

问题二:

修改主机名为ip(svn服务器的ip地址)之后,查看jenkins的日志,发现下面的错误,原因是svn服务器需要用户名和密码的认证。点击"enter credential"链接输入svn帐号密码即可。

wps87E7.tmp.png 

wps87E8.tmp.png 

wps87E9.tmp.png 

4) 添加maven构建参数,然后保存。返回到主页。

wps87EA.tmp.png 

1.7. 运行jenkins任务。

jenkins任务开始前,修改代码并提交svn库。

wps87EB.tmp.png 

开始运行,单机绿色的开始按钮如下图:

wps87EC.tmp.png 

左下角显示构建状态

wps87ED.tmp.png 

点击任务名称,进入任务详情页面,注意:第一次构建需要下载很多maven插件和依赖包,大概需要5分钟左右。

wps87EE.tmp.png 

wps87FE.tmp.png 

返回首页,可以发现任务状态显示成功!

wps87FF.tmp.png 

检查目标tomcat状态。正常!!!

wps8800.tmp.png 

1.8. jenkins定时任务

作为项目经理,有些时候为了配合自动化测试,需要在夜间或者其他指定时间定期发布测试物,如果靠人工来完成的话,非常的耗时耗力,jenkins提供了定时执行任务的功能。

wps8801.tmp.png 

下面定义每天晚上23点50分执行任务,满足无人值守自动构建项目。

wps8802.tmp.png 

时间格式的详细说明:

wps8804.tmp.png 

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提供下面的功能

wps8804.tmp.png 

 

后记:

至此,jenkins就说到这里

版权付亚东笔记博客所有,禁止转载!!付亚东Java笔记博客


我的笔记博客版权我的笔记博客版权