Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
- 1、持续的软件版本发布/测试项目。
- 2、监控外部调用执行的工作。
我们可以用Jenkins来配置一套自动编译发布项目的流程。下面我们以一个简单的例子来说明。
主要有以下步骤:
- 1 新建一个项目credit,选择构建一个Maven项目:
- 2 进行项目的具体配置
- 2.1 进入配置页面
- 2.2 可以写项目描述,限定一下项目构建
- 2.3 设置代码下载的SVN地址:
- 2.4 可以设置每天自动定时发布,构建时是用maven的命令: -Dmaven.test.skip=true clean install package -Denv=dev
- 2.3 设置代码下载的SVN地址:
- 2.1 进入配置页面
3 自定义自动部署的shell脚本
ps:要在shell代码之前添加BUILD_ID=DONTKILLME,这样才不至于中途应用被停止,部署没完成就结束了。
脚本主要的内容包含:备份原来的包,发布新的包,重启相关的应用服务。BUILD_ID=DONTKILLME
cd /opt/java/front/apache-tomcat-7.0.67
sh bin/shutdown.sh
sleep 1
rm -rf webapps/front.war.bak
#备份front
mv webapps/front.war webapps/front.war.bak
cp -rf /jenkins/workspace/credit/credit-web/target/front.war webapps/front.war
sh bin/startup.sh
sleep 1
echo "front app started......"
echo "back app operation......"
cd /opt/java/back_tomcat/apache-tomcat-7.0.67
sh bin/shutdown.sh
sleep 1
rm -rf webapps/back.war.bak
#备份back
mv webapps/back.war webapps/back.war.bak
cp -rf /jenkins/workspace/credit/credit-manager-web/target/back.war webapps/back.war
sh bin/startup.sh
sleep 1
echo "back app started……"
Q&A:
Q:一不小心删除了相关job的配置数据后,重新配置相同名的项目的构建部署过程后,发现立即构建会报错:
java.lang.IllegalStateException: cannot create a build with number 5 since that (or higher) is already in use among [204],那么如何解决呢?
A:可以把相关job的配置文件(/root/.jenkins/jobs/jobName/nextBuildNumber)中的值修改成报错中的值204或者更大的205。
然后重启jenkins的web部署应用tomcat。然后再进行构建即可成功。