内容简介:Jenkins Start Guide
从原始的Eclipse右键导出打包,到后面使用maven打包,就单自己一个人使用开发部署是完全没问题的。现在的jenkins是对 工具 的封装、可视化和自动化,对于团队合作还是有一定的作用的,时时刻刻告诉我们代码是可运行的。
但是如果一个很久前的项目,又需要新加/修改功能,一下子还捡不起来,不放心啊还得验证一把。还有就是,测试有时刻他们自己打包,不会的还的教她们使用工具,人家烦自己也累。
jenkins是一个持续集成的工具,原来也接触过,但是都没用起来,都是搞开发,大部分时刻都能自己搞定。最新由于特殊情况,很多代码都直接在生产改,测试环境就不顾上了,但是测试环境不能总是旧代码啊,就想着有个自动化的东西来进行部署。
主要就是完成一个代码自动化部署的工作:自己搭建一个jenkins,从oschina上拉代码,编译后部署到tomcat并重启。
安装Jenkins
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war nohup java -jar jenkins.war –httpPort=8081 >/var/log/jenkins.log 2>&1 &
建立到oschina的无密钥登录
由于项目是私有的,通过https需要输入密码,还是git方式无密钥登录方式便捷一些。本地 linux 执行ssh-keygen,然后把 id_rsa.pub 的内容拷贝到项目的公钥处进行配置。可以参考文档: http://git.mydoc.io/?t=154712
配置项目
第一次登录需要进行一些配置,默认admin创建的密码会保存在 ~/.jenkins/secrets/initialAdminPassword 。(在初始化页面创建新用户报错,也不知道啥原因。登录后再建吧)
新版本的按照默认安装插件还不行够,需要再添加一些。登录成功后,添加如下插件:
Deploy to container Plugin 把war发布到容器tomcat... Nexus Artifact Uploader 上传jar到私服 Maven Integration plugin 集成maven
配置maven:
自己下载个maven解压后,在jenkins - Global Tool Configuration上面配置maven地址即可(把 自动安装 的勾去掉就可以填地址了)
然后配置JOB:
- 构建一个maven项目:填任务的名称,然后点击左下角的OK
- 源码管理git: 填写地址,然后新增Credentials - SSH Username with private key - From the Jenkins master ~/.ssh 起一个容易区分的名字
- 构建触发器: Build periodically - 0 0 * * * 每天一次
- Build:web/pom.xml ; clean package -Papp,dist -DskipTests 就是mvn命令的一串参数
- Post Steps: Run only if build succeeds - Execute Shell
/opt/apache-tomcat-8.0.26/bin/shutdown.sh ; sleep 1 rm -rf /opt/apache-tomcat-8.0.26/webapps/app.war cp $WORKSPACE/web/app/target/app.war /opt/apache-tomcat-8.0.26/webapps cd /opt/apache-tomcat-8.0.26/webapps ; ./deploy.sh BUILD_ID=dontKillMe nohup /opt/apache-tomcat-8.0.26/bin/startup.sh & sleep 3
这里的BUILD_ID挺有意思啊!!
也可以配置[构建后操作]把包发布到tomcat manager,无奈webapps下的都被我删了。就用脚本弄了。
构建
完成上面的操作后,就可以执行跑一次看看效果了。其他的还有很多功能:权限等。
参考
- Jenkins配置基于角色的项目权限管理
- Jenkins进阶系列之——14配置Jenkins用户和权限
- https://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build
- https://www.ibm.com/developerworks/cn/java/j-lo-jenkins/
–END
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。