从头搭建maven+jenkins持续集成环境

来源:互联网 发布:it资讯网 编辑:程序博客网 时间:2024/06/04 00:45

从头搭建maven+jenkins持续集成环境

转至元数据结尾
转至元数据起始
Icon

共分三个部分:介绍从头开始如何下载git代码;使用maven部署程序到Tomcat服务器以及Jenkins自动CI

下载git代码到Linux测试服务器

Table of Contents

1.确保你的测试机(192.168.201.240)上已安装,安装成功后可以用git --version验证。

2.确保开发人员加上你的下载代码权限,使用git clone命令下载代码到指定路径(/apps/src/portal_test),

[anthony.zhang@PEMS_JAVA67_192 src]$ cd ./portal_test/

[anthony.zhang@PEMS_JAVA67_192 portal_test]$ sudo git clone http://gitlab.tools.vipshop.com/bi_portal/admin-portal.git

3.为了确保jenkins可以自动pull代码,还要在测试机器上保存用户信息(用户名和密码),这样以后pull或者push代码就不需要每次输入github的账号和密码。首先到自己的HOME目录下创建并编辑隐藏文件.git-credentials

    touch .git-credentials
    vim .git-credentials
    https://{username}:{password}@github.com

然后进入git bash终端, 输入如下命令:git config --global credential.helper store

执行完后查看%HOME%目录下的.gitconfig文件,会多了一项:

    [credential]

        helper = store

重新开启git bash会发现git push时不用再输入用户名和密码

 

下载git代码部分完成。

搭建Tomcat服务器以及使用Maven部署webapp

Table of Contents

1.搭建tomcat:下载tomcat压缩包并解压,命名为项目的名字,在bin目录下执行./startup.sh脚本启动tomcat,并用浏览器访问测试机ip,确认tomcat已启动。

sudo wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-6/v6.0.41/bin/apache-tomcat-6.0.41.zip
sudo unzip apache-tomcat-6.0.41.zip
sudo mv apache-tomcat-6.0.41 tomcat-portal-test
[anthony.zhang@PEMS_JAVA67_192 bin]$ pwd
/apps/svr/tomcat-portal-test/bin
[anthony.zhang@PEMS_JAVA67_192 bin]$ ./startup.sh

 

2. 使用maven打包并部署应用程序到tomcat,实质是使用maven将程序打包成war文件并拷贝到tomcat的webapps路径下,重启 toncat服务后tomcat会自动解压并添加该应用程序。执行完下列命令后继续到浏览器输入app url,确认已正确部署。注意橙色的命令了吗?正因为在git pull代码的第一步我们已经将用户名和密码保存到Linux机器(新建了.git-credentials文件),所以将来这段脚本在Jenkins自动调用时不会因为没有pwd而只能手动执行命令。

echo '------------------start packaging-------------'

cd /apps/src/portal-git/admin-portal/trunk/admin.portal

sudo git pull

sudo mvn clean package -Dmaven.test.skip=true

echo '---------------------packaging done----------------'

echo '---------------------start deploying----------------'

TOMCAT_HOME=/apps/svr/tomcat-portal-test

PACKAGE_HOME=/apps/src/portal-git/admin-portal/trunk/admin.portal

sudo rm -rf $tomcat_home/webapps/admin.portal.war

sudo rm -rf $tomcat_home/webapps/admin.portal

sudo cp $PACKAGE_HOME/target/admin.portal.war $TOMCAT_HOME/webapps

echo '--------deploying done--------------------------'

echo '----------------restarting tomcat------------------'

TomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat-portal-test'|grep -v 'grep'|awk '{print $2}')

echo 'original processid of tomcat is: ' $TomcatID

sudo kill -9 $TomcatID

sudo sh /apps/svr/tomcat-portal-test/bin/startup.sh

 

部署部分完成。

使用Jenkins自动集成

Table of Contents

Jenkins 的前身是 Hudson,是一个可扩展的持续集成引擎。我们主要用它持续、自动地构建/测试软件项目。也就是把下载git代码,maven打包,部署到tomcat服务器,执行自动化测试用例以及通过Sonar分析代码质量等这些工作通过Jenkins自动执行。在Jenkins里配置这些主要有以下几个部分:

1.Jenkins的Master与Slave:Master/Slave相当于Server和agent的概念。Master提供web接口让用户来管理job和slave,job可以运行在 master本机或者被分配到slave上运行。一个master可以关联多个slave用来为不同的job或相同的job的不同配置来服务。

2.添加你的linux slave到jenkins:我们数据平台与应用这边已经搭建好了一个Jenkins master(http://10.101.18.57:8080/jenkins/),目前所有的测试机和项目都通过这个master来管理。省去搭建Jenkins master的步骤,直接从把你的测试(开发)环境连接到10.101.18.57上开始。打开Jenkins管理界面http://10.101.18.57:8080/jenkins/),Jenkins->系统管理->nodes->新建节点。在打开的界面中,Name里配置新的测试机(slave)的名称,远程工作目录默认/home/jenkins,建议改成能够登录这台slave的账户的home目录下(e.g. /home/anthony.zhang/jenkins),这样确保可以访问。用法选择[只允许运行绑定到这台机器的job],Host填上机器的ip地址,新建一个能够登陆slave的crecidencial,Node Properties下面配置一些环境变量,主要是安装的JDK和maven的路径等。具体配置信息见下图或参考http://10.101.18.57:8080/jenkins/computer/192.168.201.240/configure:

 

2.Jenkins新建你的项目:Slave搭建好以后,接下来就是把下载代码,部署等工作(在Jenkins叫做job)添加到新建的Slave上来自动执行:Jenkins->新建->构建一个自由风格的软件项目。在新建项目的配置页面进行一下配置:

    a)丢弃旧的构建:每次通过Jenkins构建项目都会保留日志,勾上这一项可以设置如何保留以前的构建记录

    b)Restrict where this project can be run:这一项记得勾上,让新的项目运行在指定的Slave上(Label Expression 填写新加的slave的label)

    c)构建触发器: 可以通过设置这一项决定如何触发构建项目(定时,监控某一个文件,有代码更新触发构建等)  Poll SCM :这是CI 系统中我们常选的选项。当您选择此选项,您可以指定一个定时作业表达式来定义Jenkins每隔多久检查一下您源代码仓库的变化。如果发现变化,就执行一次构建。例如,表达式中填写0,15,30,45 * * * *将使Jenkins每隔15分钟就检查一次您源码仓库的变化。

    d)构建->增加构建步骤:可以选择如何构建你的项目。在BI_PORTAL_TEST这个项目里主要是通过执行shell命令(第二部分里的那段命令行);来完成构建与部署,所以这里可选择增加构建步骤->Execute shell然后把shell命令(第二部分那段斜体命令)粘贴进来;还可以添加其他构建步骤,比如添加Invoke     Standalone Sonar Analysis一步可以通过sonar来分析代码质量。其他构建步骤请查询Jenkins官网http://jenkins-ci.org/。 BI_PORTAL_TEST项目的具体配置见http://10.101.18.57:8080/jenkins/job/BI_PORTAL_TEST/configur

    e)E-mail Notification:在[增加构建后步骤]->[Editable Email Notification]选项,这个也是Jenkins的一个核心,通过这个构建后步骤我们可以配置当新的构建不稳定或者失败后系统会自动发送邮件提醒你和触发这次构建(也就是提交代码的)的同学。见下图:

    配置邮件发送内容:

 

    配置根据新构建的项目的状态发送邮件给相关的人员。如下图,当构建失败(Failure)时,会有邮件发送给Recepient List(邮件模板中配置)和提交这次代码的同学(Send to Committers).

 

 

至此整个项目已集成到Jenkins,自动完成代码更新,打包,部署工作。

其他:

1.关于sonar:sonar也需要一台server来配置,然后Jekins里通过安装sonar插件来调用sonar的功能来进行静态代码分析。可参考wikiJenkins集成Sonar手册。代码质量管理工具sonar介绍侧重介绍sonar里各种不同的指标,指示如何通过sonar的指标评估项目的代码质量。

2.Jenkins官网:http://jenkins-ci.org/

3.其它Jenkins的wiki:jenkins使用参考手册

4.网上看到一篇配置Jenkins很不错的文档:http://wenku.baidu.com/link?url=VSlpnDknUYGiM_dIlCoT35yYPNI7CwY6B0spi0DWq2HElpuS3czWz73twTAAGh5FMxPV6B9-a2lq0pxGWiVmsIhssLLpjjznmXdpz7mja1a

5.欢迎修正与补充

6.有用请点赞 (smile)

0 0
原创粉丝点击