1.Jenkins介绍

  Jenkins是一款持续集成工具,通过和maven或者ant等工具整合,可以形成一个自动化持续集成的平台,达到一键更新发布项目的作用。

 

2.Jenkins安装

2.1安装包方式搭建

  1. 官网 http://pkg.jenkins-ci.org/获取需要安装包,例如centos系统,当前获取的最新版jenkins-1.564-1.1.noarch.rpm
  2. 将安装包上传到服务器,在存放目录执行

  rpm -ivh jenkins-1.564-1.1.noarch.rpm

 

  1. 安装完成后,启动jenkins

  Service Jenkins start

 

  1. 打开浏览器访问http://serviceIP:8080/

  注jenkins的启动需要jdk的支持,需要确定服务器上是否已安装jdk

  默认的端口是8080,如果需要修改可编辑/etc/sysconfig/jenkins文件进行配置

 

2.2war包方式搭建

  1. 官网http://pkg.jenkins-ci.org/获取最新war包
  2. 将war包上传至服务器的tomcat目录的webapps下
  3. 启动tomcat进行war包解压,解压完成后,重启tomcat
  4. 如果tomcat端口是8080,打开浏览器访问http://serviceIP:8080/

3.ant介绍

  ant是基于java的一款构建工具,通过配置build.xml,让项目可以进行编译,部署,打包。

 

4.ant安装

  1. 从官网http://ant.apache.org/bindownload.cgi获取最新的tar包。
  2. 上传至服务器目录,解压tar包即可

  tar –xvf   apache-ant-1.9.2-bin.tar

  注:使用javacc编译存在一些条件无法编译的情况,可以使用eclipse的编译器jdt进行编译。找到

  jdtCompilerAdapter.jar

  org.eclipse.jdt.compiler.tool_1.0.100.v_B79_R37x.jar

  org.eclipse.jdt.core_3.7.3.v20120119-1537.jar

  org.eclipse.jdt.debug.ui_3.6.1.v20111006_r372.jar

  上传至ant目录的lib下。在build.xml申明下使用jdt即可

  

 

5.ant配置

  ant需要在项目路径下配置build.xml,通过build.xml写入的脚本,来实现功能。以下用一个示例文件来大致说明下。

  

  

  

  

  

  

  

  

  

  

  

  

用eclipse的编译工具编译,跳过不能编译泛型的问题-->

  

定义jar包所在目录 -->

  

  

  

  

  

  

 

  

  

 

  

  

  

  

  

  

  

  

  

  

  

  

  

 

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

 

  该build.xml主要实现了

 

  1. 删除编译目录
  2. 编译项目
  3. 部署项目

  其中环境变量要根据不同机器配置相对应路径。类似于公司的项目,要首先观察下项目的目录结构,把供编译使用的jar包存放路径找到,配置到classpath参数之中。接着建立buildfile目录,加入部署项目时用到的数据库连接文件(一般我们从svn获取的代码中的database.xml不是服务器的测试环境的链接,通过替换数据库链接文件,可以让各环境连接不同的数据库)。在根据项目实际情况,调整build.xml定制特殊功能。

 

6.jenkins配置

  建立jenkins+ant+svn持续构建环境主要要实现一个这样的流程

 

  1. 通过svn下载项目最新代码
  2. 关闭tomcat
  3. 调用ant脚本执行部署
  4. 启动tomcat

  通过让jenkins自动的执行这些步骤就能完成持续集成的工作。配置如下。

 

  1. 配置系统管理,配置服务器环境变量

1

 

  1. 访问jenkins,新建一个项目

2

 

  1. 配置svn

3

 

  1. 配置shell和ant

4

 

  1. 配置完成后点击项目的立刻构建按钮,就能达到持续集成的目的。

5

 

  通过规范化svn备注提交,可以达到更新说明的目的

 

6

 

 

 

 

  通过查看控制台输出,可以监控安装部署情况。

7

 

  1. 建立安全策略,建立账号防止多人访问误点。

8

  注意事项

1. jenkins中配置自动更新部署项目时,如果采取用execute shell启动/关闭tomcat,会发现可以进行关闭tomcat,但是无法启动tomcat,虽然构建会显示执行成功,但是查看进程,tomcat是没有启动的。这是因为Jenkins默认会在Build结束后Kill掉所有的衍生进程。需要进行以下配置,才能避免此类情况发生:

  重设环境变量build_id

 

  execute shell输入框中加入BUILD_ID=DONTKILLME,即可防止jenkins杀死启动的tomcat进程

 

 

9

  在启动jenkins 的时候禁止jenkins杀死衍生进程

 

  修改/etc/sysconfig/jenkins配置,在JENKINS_JAVA_OPTIONS中加入-Dhudson.util.ProcessTree.disable=true。需要重启jenkins生效

 

  此方法配置一次后,所有的job都无需设置BUILD_ID,就能够防止jenkins杀死启动的tomcat