用户工具

站点工具


分享:技术:持续集成:jenkins的介绍安装与使用

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
分享:技术:持续集成:jenkins的介绍安装与使用 [2015/07/14 09:28]
gxx
分享:技术:持续集成:jenkins的介绍安装与使用 [2015/07/15 18:10] (当前版本)
gxx
行 25: 行 25:
 Jenkins的官网地址:http://​jenkins-ci.org/​ Jenkins的官网地址:http://​jenkins-ci.org/​
 ===== Jenkins的安装 ===== ===== Jenkins的安装 =====
-以下是在Ubuntu14.04上安装的步骤+以下是在Ubuntu 14.04.2上安装的步骤(摘自官网的安装步骤:https://​wiki.jenkins-ci.org/​display/​JENKINS/​Installing+Jenkins+on+Ubuntu)
 <​code>​ <​code>​
-wget -q -O - https://​jenkins-ci.org/​debian/​jenkins-ci.org.key | sudo apt-key add -+wget -O - https://​jenkins-ci.org/​debian/​jenkins-ci.org.key | sudo apt-key add - #​使用sudo输入root的密码
 sudo sh -c 'echo deb http://​pkg.jenkins-ci.org/​debian binary/ > /​etc/​apt/​sources.list.d/​jenkins.list'​ sudo sh -c 'echo deb http://​pkg.jenkins-ci.org/​debian binary/ > /​etc/​apt/​sources.list.d/​jenkins.list'​
 sudo apt-get update sudo apt-get update
 sudo apt-get install jenkins sudo apt-get install jenkins
 </​code>​ </​code>​
 +安装过后,详情如下:
 +  * 自动新建一个jenkins用户,宿主目录位于/​var/​lib/​jenkins(可以进root用户passwd jenkins修改密码)
 +  * 日志文件位于/​var/​log/​jenkins/​jenkins.log
 +  * 配置文件位于:/​etc/​default/​jenkins和/​etc/​init.d/​jenkins
 +  * 默认端口8080
 +由于,在我的机器8080端口已经被tomcat占用,所以这里要修改端口,方法如下:
 +  - 修改/​etc/​init.d/​jenkins,搜索''"​$HTTP_PORT"​ "​8080"''​,改成''"​$HTTP_PORT"​ "​7070"''​
 +  - 修改/​etc/​default/​jenkins,搜索''​HTTP_PORT=8080''​改成''​HTTP_PORT=7070''​
 +启动脚本可以带上端口号,使用nohup让进程在背后运行
 +  nohup java -jar /​usr/​share/​jenkins/​jenkins.war --httpPort=7070 >> ~/​logs/​jenkins/​jenkins_nohup.out &
 +到这里,安装都已完成。
 +===== Jenkins的访问 =====
 +http://​121.43.104.34:​7070/​
 +{{ :​分享:​技术:​持续集成:​1.png?​300 |}}
 +{{ :​分享:​技术:​持续集成:​2.png?​300 |}}
 +===== Jenkins新建构建任务前的准备 =====
 +访问 系统管理>​系统配置 http://​121.43.104.34:​7070/​configure
 +  * 设置maven
 +{{ :​分享:​技术:​持续集成:​3.png?​300 |}}
 +  * 设置subversion
 +{{ :​分享:​技术:​持续集成:​4.png?​300 |}}
 +{{ :​分享:​技术:​持续集成:​5.png?​300 |}}
 +{{ :​分享:​技术:​持续集成:​6.png?​300 |}}
 +===== Jenkins新建构建任务 =====
 +{{ :​分享:​技术:​持续集成:​7.png?​300 |}}
 +{{ :​分享:​技术:​持续集成:​8.png?​300 |}}
 +{{ :​分享:​技术:​持续集成:​9.png?​300 |}}
 +{{ :​分享:​技术:​持续集成:​10.png?​300 |}}
 +到这里,Jenkins构建任务就可以成功执行完,相当于Ubuntu上之前写的脚本,达到的效果是一样的:
 +<​code>​
 +mkdir -p ~/​build/​target/​record
 +mkdir -p ~/​distribute/​record
 +cd ~/​build/​target/​record
 +rm -rf *
 +svn co svn://​121.43.104.34/​gxx/​trunk/​record --username gxx --password 123456 ~/​build/​target/​record
 +cd ~/​build/​target/​record
 +mvn clean install -P test
 +cp ~/​build/​target/​record/​target/​*.war ~/​distribute/​record/​record.war
 +cp ~/​build/​target/​record/​target/​*.war /​home/​soft/​apache-tomcat-6.0.39/​webapps/​
 +tail -f ~/​logs/​record/​record.log
 +</​code>​
 +===== Jenkins常用菜单介绍 =====
 +构建历史可以查看之前的构建记录,红色表示构建失败,蓝色表示构建成功
 +{{ :​分享:​技术:​持续集成:​11.png?​300 |}}
 +点击#​1,#​2进入页面后,点击左侧的Console Output可以查看构建成功日志,失败日志和失败后的解决建议
 +{{ :​分享:​技术:​持续集成:​12.png?​300 |}}
 +===== Jenkins暂未研究功能 =====
 +Jenkins用户
 +{{ :​分享:​技术:​持续集成:​13.png?​300 |}}
 +Jenkins插件
 +{{ :​分享:​技术:​持续集成:​14.png?​300 |}}
 +Jenkins邮件功能:比如构建失败会邮件通知
 +{{ :​分享:​技术:​持续集成:​15.png?​300 |}}
 +{{ :​分享:​技术:​持续集成:​16.png?​300 |}}
 +Jenkins定规则构建:比如定时每天早上9点构建一次
 +===== Jenkins相关目录介绍 =====
 +<​code>​
 +~/.jenkins #​安装Jenkins后,用户宿主目录下会有一个隐藏文件夹(类似.m2),需要ls -a才能看到,里面放置Jenkins基本上所有的东西
 +~/​.jenkins/​plugins #​插件目录
 +~/​.jenkins/​jobs #​任务目录
 +~/​.jenkins/​jobs/​record/​workspace #​任务名为record的工作空间目录,里面放置svn拉下来的源代码
 +~/​.jenkins/​jobs/​record/​workspace/​src #​源代码目录
 +~/​.jenkins/​jobs/​record/​workspace/​pom.xml #pom.xml
 +~/​.jenkins/​jobs/​record/​workspace/​target #​构建目标目录
 +~/​.jenkins/​jobs/​record/​workspace/​target/​record.war #​构建后的war包
 +</​code>​
 +===== Jenkins构建出错记录 =====
 +  * 报错1
 +<​code>​
 +[workspace] $ java -Xms256m -Xmx512m -cp /​home/​gxx/​.jenkins/​plugins/​maven-plugin/​WEB-INF/​lib/​maven31-agent-1.5.jar:/​home/​soft/​apache-maven-3.3.3/​boot/​plexus-classworlds-2.5.2.jar:/​home/​soft/​apache-maven-3.3.3/​conf/​logging jenkins.maven3.agent.Maven31Main /​home/​soft/​apache-maven-3.3.3 /​home/​gxx/​.jenkins/​war/​WEB-INF/​lib/​remoting-2.51.jar /​home/​gxx/​.jenkins/​plugins/​maven-plugin/​WEB-INF/​lib/​maven31-interceptor-1.5.jar /​home/​gxx/​.jenkins/​plugins/​maven-plugin/​WEB-INF/​lib/​maven3-interceptor-commons-1.5.jar 45620
 +Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::​commit_memory(0x00000000dae00000,​ 89456640, 0) failed; error='​Cannot allocate memory'​ (errno=12)
 +#
 +# There is insufficient memory for the Java Runtime Environment to continue.
 +# Native memory allocation (malloc) failed to allocate 89456640 bytes for committing reserved memory.
 +# An error report file with more information is saved as:
 +# /​home/​gxx/​.jenkins/​jobs/​record/​workspace/​hs_err_pid9721.log
 +</​code>​
 +''​insufficient memory''​表示内存不足,Ubuntu中''​top''​查看''​KiB Mem:   ​1016272 total, ​  ​943532 used,    72740 free,      248 buffers''​,显示1016M内存已经使用943M,还剩72M内存可用,内存基本已经用满,所以构建失败!解决方法:扩大内存,或者,kill掉其他进程释放内存,重新构建。
 +  * 报错2
 +<​code>​
 +Started by user anonymous
 +Building in workspace /​home/​gxx/​.jenkins/​jobs/​record/​workspace
 +Updating svn://​121.43.104.34/​gxx/​trunk at revision '​2015-07-15T18:​00:​42.200 +0800'
 +At revision 39
 +no change for svn://​121.43.104.34/​gxx/​trunk since the previous build
 +Parsing POMs
 +[workspace] $ /bin/sh -xe /​tmp/​hudson8535227838770415382.sh
 ++ cp target/​record.war /​home/​soft/​apache-tomcat-6.0.39/​webapps/​
 +ERROR: No such file /​home/​gxx/​.jenkins/​jobs/​record/​workspace/​pom.xml
 +Perhaps you need to specify the correct POM file path in the project configuration?​
 +Finished: FAILURE
 +</​code>​
 +''​No such file /​home/​gxx/​.jenkins/​jobs/​record/​workspace/​pom.xml''​表示pom.xml找不到,原因是svn路径写错''​svn://​121.43.104.34/​gxx/​trunk''​,应该是''​svn://​121.43.104.34/​gxx/​trunk/​record''​
分享/技术/持续集成/jenkins的介绍安装与使用.1436837314.txt.gz · 最后更改: 2015/07/14 09:28 由 gxx