Jenkins 是用来自动构建任务的,也许你还不知道什么叫自动构建任务,它的意思是可以针对某个任务进行自动化,比如你开发的某个软件,每次写完代码提交到
之后,你可以设置让 Jenkins 自动进行打包构建发布包或者进行 Units 测试,发布报告,不用你每次手工在
- github
中去 Build,尤其是当打包非常繁琐的时候,用自动化构建可以极大的提高工作效率。
- IDE
公司是同事使用
做的自动化构建,非常方便,每次提交代码,自动检测打包是否成功,然后发送邮件通知,因为我们集成了
- Jenkins
插件,在打包前还会对代码进行
- findingbugs
检索,告诉你
- findingbus
的状态,还会生成 release 的发布包,非常之方便。
- findingbus
这个项目我想多人协作开发,自然想到了 Jenkins,让大家能够配合的非常的舒服,昨天折腾了三小时,搞定了
- wement.io
,其中包括怎么创建一个任务,怎么设置
- Jenkins
,和
- github
的项目挂钩,怎么设置邮件通知。
- github
- Jenkins
直接去
官网下载
- Jenkins
包,我这里是直接部署在阿里云的 centos7 上的,然后用
- war
直接从本地拷贝到云服务器上,拷贝之后直接用
- scp xxx.war root@yourip:/home
就可以运行成功了,如果你期望退出命令行还不关闭
- java -jar xxx.war
的话,就用命令
- Jenkins
来运行包,java 进程自动在后台运行了,关闭命令行窗口也不会退出程序,这样你的
- nohug java -jar xxx.war
就运行了,默认端口监听在 8080,如果你也是用的云服务器,请确保你的 8080 端口是允许访问的。
- Jenkins
当然,要运行
,你需要安装 Java 环境,如果你的代码仓库用
- Jenkins
的话请安装 git,分别命令如下:
- git
- yum install java
- yum install git
还没有完,Jenkins 运行成功了,你再在浏览器上打开
跟随
- yourip:8080
安装向导,用默认提示安装完成即可,接下来就是创建任务了。
- Jenkins
选择第一性,
- 构建一个自由风格的软件项目
然后保存即可,任务创建完成。但是如果你的项目是私有项目,你需要在你的服务器上生成 ssh,然后贴到你的 github 上,这样做的目的是然 github 信任你的这个服务器,同时要注意你的 Jenkins 控制台,有可能要你输入 ssh 的证书密码。
一般来说这个时候右键通知是没问题的,但是我今天发现我提交代码之后,任务并没有自动构建,然后看
打的 log 是这样的:
- Jenkins
- 22:23:55 [WARNING] mvn dependency:tree -Ddetail=true and the above output.
- 22:23:55 [WARNING] See http://maven.apache.org/plugins/maven-shade-plugin/
- 22:23:56 [INFO] ------------------------------------------------------------------------
- 22:23:56 [INFO] BUILD SUCCESS
- 22:23:56 [INFO] ------------------------------------------------------------------------
- 22:23:56 [INFO] Total time: 10.112s
- 22:23:56 [INFO] Finished at: Thu Aug 10 22:23:56 CST 2017
- 22:23:56 [INFO] Final Memory: 20M/59M
- 22:23:56 [INFO] ------------------------------------------------------------------------
- 22:23:56 Archiving artifacts
- 22:23:56 Email was triggered for: Always
- 22:23:56 Sending email for trigger: Always
- 22:23:56 Not sending mail to unregistered user chengming@testin.cn because your SCM claimed this was associated with a user ID 'chengming' which your security realm does not recognize; you may need changes in your SCM plugin
- 22:23:56 An attempt to send an e-mail to empty list of recipients, ignored.
- 22:23:56 Finished: SUCCESS
意思是构建成功了,但是发送邮件发现提交代码的用户名是
而不是我在
- chengming
中设置的
- Jenkins
,然后 Jenkins 自动忽略了发送邮件的这个行为。
- cmlanche
然后我在我的
中把提交代码的用户换回了
- sourcetree
,任务自动构建,邮件发送成功!
- cmlanche
是一个非常方便的工具,免费开源,推荐大家都来学习,都折腾下,对你以后大有好处。我其实也是刚刚学这个,知道的还不多,还需要花很多时间去折腾,有更新的收获我会慢慢分享出来。
- Jenkins
欢迎加入我的
:518914410,讨论有关 Java 的一切技术。
- Java栈群
来源: http://www.cnblogs.com/cmgrass/p/7342064.html