Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建、自动编译和部署,非常方便。
在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器数量的增加,Jenkins的优势就会凸显出来,可以很好的提高效率,减少很多人工操作。
现在公司的开发都是使用Git管理代码,Maven管理多模块和项目依赖,因此,实现自动化打包,构建迫在眉睫。
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
sudo /etc/init.d/jenkins start
然后接下来会填写用户信息,安装基本插件,提示照做就好。
方法一:插件
1.
2. 插件配置(配置用户)
3. tomcat配置
找到tomcat-->config-->tomcat-users.xml
打开后在<tomcat-users>tomcat-users>之间增加如下用户信息:
<role rolename="manager-gui">role>
<role rolename="manager-script">role>
<user username="tomcat" password="admin" roles="manager-gui,manager-script"/>
方法二:脚本(自行修改我没有测试)
#!/bin/sh
#defined
TOMCAT_HOME="/usr/java/tomcat/apache-tomcat-7.0.67/"
ID=`ps -ef | grep java | grep tomcat|awk '{print $2}'`
echo $ID
echo "kill tomcat"
kill -9 $ID
echo "remover war file"
cd "$TOMCAT_HOME"/webapps
rm -rf JavaWeb-0.0.1-SNAPSHOT
rm -rf JavaWeb-0.0.1-SNAPSHOT.war
echo "copy war to webapp"
cd /home/lin
cp JavaWeb-0.0.1-SNAPSHOT.war "$TOMCAT_HOME"/webapps
cd "$TOMCAT_HOME"/bin
echo "start tomcat"
./startup.sh
Build after other projects are built:在其他项目触发的时候触发,里面有分为三种情况,也就是其他项目构建成功、失败、或者不稳定的时候触发项目;
Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。
H/5 * * * * (每5分钟检查一次源码变化)
Build periodically:周期进行项目构建(它不关心源码是否发生变化),如下图配置:
H 2 * * * (每天2:00 必须build一次源码)
在 Schedule 中填写 0 * * * *。
第一个参数代表的是分钟 minute,取值 0~59;
第二个参数代表的是小时 hour,取值 0~23;
第三个参数代表的是天 day,取值 1~31;
第四个参数代表的是月 month,取值 1~12;
最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
所以 0 * * * * 表示的就是每个小时的第 0 分钟执行构建。
由于项目的代码一般存在放SVN中,而一个SVN往往是有多个项目组在提交代码,而每个项目组又有多人组成,其中每个人也都在对自己的那块代码不停地在进行维护,所以说对于一个公司而言,SVN的提交记录往往是很频繁的,正因为如此,Jenkins在执行自动化构建时往往是以天为单位来执行的,下面举的例子就是在一天中常用的定时构建示例。
每隔5分钟构建一次
H/5 * * * *
每两小时构建一次
H H/2 * * *
每天中午下班前定时构建一次
0 12 * * *
每天下午下班前定时构建一次
0 18 * * *
虽然实现了项目的自动部署,但是有时部署失败的时候我们需要回滚到指定版本的构建,这样才能更灵活的进行项目的构建部署。我们可以选择“参数化的构建过程”进行传递不同的参数来选择是进行新的构建还是回滚
步骤:
1. 构建后存档
在构建后将,构建完成的文件进行存档,方便以后回滚的时候使用
2. 参数和构建过程
使用参数化构建过程,让后面的脚步可以根据不同的变量执行不同的操作。添加“Choice”参数配置不同的选项,让选择发布还是回滚,添加“String Parameter”参数来传递要回滚的版本号。
3. execult 构建(不能maven)
构建选择“Execute Shell”的方式,自己根据变量,自定义构建的脚本,此时如果是发布安装maven的构建过程进行新的构建,如果是回滚,知道历史构建后的文件,复制到当前构建结果目录。
4. 点击构建,根据不同的参数选择发布还是回滚,回滚的时候填写要回滚到的历史版本号
1.报错:Solve Git Problem: “tell me who you are” 解决:Enter Git Username and Email ,在Git plugin上添加用户加密码
2. 报错:Maven Error: Cannot run program “mvn” 分析:找不到命令,就是Jenkins用户没有使用权,我解决的方式比较low 解决:在maven全局配置的使用自动安转的maven不自定义就OK了
https://oliverveits.wordpress.com/2017/02/27/jenkins-part-5-1-using-the-job-dsl-for-automatic-creation-of-jenkins-jobs/ 非常号的一篇文章
http://blog.csdn.net/gld824125233/article/details/52549449
http://blog.csdn.net/e295166319/article/details/52920036
http://www.jianshu.com/p/dceaa1c7bb49