声明:该博客仅供参考,如有技术错误欢迎指正,谢谢!
方式:本地更新代码后push到GitHub,触发Jenkins,Jenkins从GitHub钩取代码到服务器,Maven进行打包(.war文件),部署到Tomcat。
本地环境:
1、该示例的测试项目为maven管理的JavaWeb项目(含pom.xml文件);
2、需安装Git,进行测试使用;
3、其他相关安装配置不做赘述(如JDK等)。
服务器环境:
1、服务器为ubuntu_16_0402_32服务器;
2、服务器需安装JDK、Git、Maven、Tomcat、Jenkins(安装教程参阅百度);
3、教程中的Jenkins和发布的JavaWeb项目在同一服务器(Jenkins钩取代码在本地发布,如需发布到其他服务器,请查询SSH相关配置)。
操作步骤:
1、邮箱配置
说明:配置以163邮箱为例
(1)添加Jenkins的HTTP地址和系统管理员的邮件地址;
(3)邮箱需开启POP3/SMTP服务和IMAP/SMTP服务;
提示:如需遇到密码不正确的情况,需给163设置客户端登录密码。
2、GitHub Plugin安装配置
(1)系统管理>>管理插件>>可选插件;
(2)勾选Git Plugin,下载安装,然后重启Jenkins(Jenkins会自动解决其他插件的依赖plain-credentials、Git、Credentials、github-api)。
(3)配置GitHub插件
系统管理>系统设置>GitHub
GitHub Servers中选择GitHub Server而不是AddGitHub Server
点击personal access token,跳转到GitHub,设置token
以下步骤为直接到GitHub设置token,非点击跳转
然后勾选“repo”,点击“Generate token”
点击Generate token
然后复制生成的token值
回到Jenkin点击“add”下方的Jenkins
选择Secret text,然后粘贴刚才在github中复制的token
然后点击Add
注意:如果发现Credentials添加了好几次,想删除怎么办,到首页,点击“Credentials”,在里面可以删除。
在Credentials选择刚添加的证书,然后点击“Test Connection”
如果出现上述的内容,就说明Jenkin有权限访问GitHub了
然后,单击apply和保存。
3、构建项目测试
上述的配置已经完成了,现在创建一个Job测试一下
创建一个freestyle的project
点击Add>>Jenkins
添加github的账户名和密码
然后选择相应的证书
选择githubweb源码库浏览器,并填上你的项目URL,这样每次构建都会生成对应的changes,可直接链到github上看变更详情
构建触发器,勾选Build when a change is pushed to GitHub,每次有代码push到GitHub都会触发Jenkins
填写收件人地址,如果Job构建失败,就会收到邮件
然后,在本地执行git push命令,触发Jenkins,然后登录Jenkins,查看构建历史,检查控制台输出是否输出Finished: SUCCESS
查看邮箱,检查是否接收到邮件。
4、Maven打包,发布到Tomcat
进入Job,点击配置
添加构建步骤
会在 /root/.jenkins/workspace/autocases/target目录下生产war文件
添加Excute Shell构建步骤
然后利用shell命令,将该war移动到Tomcat(Tomcat需一直处于启动状态)目录下。
#删除Tomcat目录下的war包和文件
rm -rf /usr/tomcat/tomcat8/webapps/autocases /usr/tomcat/tomcat8/webapps/autocases.war
#休眠5秒,等待一下
sleep 5
#将maven生成的war包移动到Tomcat下
mv /root/.jenkins/workspace/autocases/target/autocases.war /usr/tomcat/tomcat8/webapps
到这里,配置就完成了,可以通过修改代码然后push,查看发布的Tomcat的项目啦
到这里就成功打包的标志
说明:第一次构建的时间可能会有点久,因为maven需要将pom.xml中的包下载本地
可以在maven安装目录下conf下的setting中找到jar包的存放位置
在${user.home}/.m2/path/to/local/repo目录下,不过以后再次构建的时候不会再下载,直接从本地调用。
到这里就写完了,如果写的有什么不足或者遗漏的地方,欢迎补充。
说明:第一次构建的时间可能会有点久,因为maven需要将pom.xml中的包下载本地