本文以基于当前最新的 LTS 版本 2.164.1 ,理论上适应于Jenkins 2.x所有版本。
一、下载
前往Jenkins官网 ,按需下载。如用于生产,建议下载Long-term Support (LTS) 版本,这样能够获得相对长期的维护;如想体验最新的功能,可尝试 Weekly 版本。
可以直接下载特定系统专属的版本,也可下载 Generic Java package (.war) 。本文下载的是 Generic Java package (.war) ,这样对所有系统都通用。
二、安装
2.1 通用安装方式
安装Jenkins非常简单,只需准备一个Tomcat(笔者使用的是Tomcat 8),然后将下载下来的 jenkins.war 丢到Tomcat的 webapps 目录中,然后启动Tomcat即可。本文,Tomcat使用的端口是 18080 。
Tomcat下载与安装本文不做赘述,请自行百度。
2.2 Docker安装方式
使用如下命令即可:
docker run -d -v jenkins_home:/var/jenkins_home -p 18080:8080 -p 50000:50000 jenkins/jenkins:lts
2.3 初始化
Jenkins启动片刻后,访问 http://localhost:18080/jenkins ,即可看到类似如下的界面:
![4cb8d31e9d08ec9752c7084f4173773f.png](https://i-blog.csdnimg.cn/blog_migrate/05e66c0d11da76867a1ff828fae65592.jpeg)
由界面提示可知,Jenkins设置了一个初始的管理员密码,该密码存储在 /Users/itmuch.com/.jenkins/secrets/initialAdminPassword 文件中——只需可找到该文件,将其内容复制到图示的输入框中即可。点击 继续 按钮,将会出现类似如下的界面:
![abf4fc322f10d4fd22cc427ce40b4d46.png](https://i-blog.csdnimg.cn/blog_migrate/35320a6c852ce3a6ca476962d1c1e493.jpeg)
按需选择即可,建议初学者选择 安装推荐的插件 ,因为该选项包含了Jenkins常用的一些插件,基本满足日常使用;高手则可选择 选择插件来安装 ,该选项更具灵活性。这里,笔者以 安装推荐的插件为例,点击后,将会看到类似如下的界面:
![f7019a780bbc529c6e49b12d1e4e8935.png](https://i-blog.csdnimg.cn/blog_migrate/2c66c24261a19b10d7dd609b0a51f953.jpeg)
待插件安装完毕后(等待的时间长短视您的网络而定),将会看到类似如下的界面:
![df8907af13b78ae12da4b8a506ef22e3.png](https://i-blog.csdnimg.cn/blog_migrate/176b54eeea823c1f0033c6738febc5c1.jpeg)
Jenkins要求我们创建第一个管理员账户。填入相关信息,并点击 保存并完成 按钮,Jenkins即可初始化完成。
TIPS
安装完成后,如果访问 http://localhost:18080/jenkins 变成白板,而且没有反应,建议重启Jenkins服务器,并重新访问尝试。
三、配置
下面,我们来配置Jenkins。
3.1 全局工具配置
1 点击系统管理 - 全局工具配置 ,如下图:
![a21e6e597dbd3d418ee48d05a7fc726c.png](https://i-blog.csdnimg.cn/blog_migrate/caf81f7a893476a8a50a42ab09c61f61.jpeg)
2 将会看到类似如下图的界面。按需添加JDK、Git、Gradle、Maven、Docker等配置。配置比较简单,这里就不赘述了。
![a5c88441c7fc09d9ee693af44767e680.png](https://i-blog.csdnimg.cn/blog_migrate/6ed17a8914d4f85b67c4ba9b071db902.jpeg)
3.2 邮件配置
1 点击 系统管理 - 系统设置
2 配置管理员邮件地址:
![f1306e7fc41e6542c21a07d49838192a.png](https://i-blog.csdnimg.cn/blog_migrate/9861367813b7d54c6de1ca6811b512a8.jpeg)
3 邮件发送配置:
![fb624d322076f23fa81c16506b49c5cc.png](https://i-blog.csdnimg.cn/blog_migrate/2afef7ddb7e1f6d7febec70855512be1.jpeg)
需要注意的是:邮件通知所使用的地址必须与管理员邮箱地址一致,否则将无法正常发送邮件!!
当然,Jenkins还有很多其他的配置选项,读者可自行在Jenkins左侧的系统管理 自行挖掘。
四、使用案例1:构建项目
1 在Jenkins首页,点击开始创建一个新任务. ,如下图所示:
![f3a1151459ac9e9a0fb4acaee46ad4ad.png](https://i-blog.csdnimg.cn/blog_migrate/6cae4c2d1c2fac6399d5eae740fba55b.jpeg)
2 创建一个自由风格的项目,如下图所示:
![9341486325c3252131feafca74c17fb7.png](https://i-blog.csdnimg.cn/blog_migrate/93deb4f22b7b3456b335aa5ef3ef7314.jpeg)
3 点击确定后,将会看到配置详情:
![7ce9ca4e048870664c1f77b4fcc1de56.png](https://i-blog.csdnimg.cn/blog_migrate/3e6b9836a0792174b6889ba7c3b2f8d2.jpeg)
如图,请设置您想构建的项目的Git仓库地址、对应的账号密码、想要构建的Git分支。一般来说,源码库浏览器选择自动即可。
4 Maven配置
![728e9d3111d2d34eade185224c500501.png](https://i-blog.csdnimg.cn/blog_migrate/f7c559a47eb5ebcf280f80c8096c27be.jpeg)
其中Maven版本 中所选择的 maven ,就是之前在全局工具配置 一节中的Maven配置名称。
5 如果想设置定时构建(例如:每天晚上八点构建):
![c071a85f56542b43b2a66bff09238647.png](https://i-blog.csdnimg.cn/blog_migrate/b21ad078455cfed566f3e872d8d81b69.jpeg)
6 配置构建完成后操作(以发送邮件为例)
![61a7698783224a61846403cfff2bbd04.png](https://i-blog.csdnimg.cn/blog_migrate/4dac0fdee47e5092f29111da47e9b8d4.jpeg)
7 点击构建项目,执行构建
![b314b26d134759d603ee3c26fdbffe8a.png](https://i-blog.csdnimg.cn/blog_migrate/1c0e42725b4a0040fbbab254b8904386.jpeg)
五、使用案例2:流水线
Jenkins 2.x 内置了强大的流水线功能。
1 创建一个 流水线 类型的任务
2 填写Pipeline脚本:
node { def mvnHome stage('Preparation') { // for display purposes // clone源码 git 'https://gitee.com/itmuch/spring-cloud-yes.git' // 这里的maven-3.5.0必须跟全局工具配置中设置的Maven名称一致 mvnHome = tool 'maven-3.5.0' } stage('Build') { // Run the maven build if (isUnix()) { sh "'${mvnHome}/bin/mvn' clean install" } else { bat(/"${mvnHome}binmvn" clean install/) } } stage('Email') { mail bcc: '', body: '构建成功。', cc: '511932633@qq.com', from: 'eacdy0000@126.com', replyTo: '', subject: '构建成功', to: 'eacdy0000@126.com' }}
如代码所示,我们编写了一个流水线,该流水线包含三个阶段:
- Preparation:在该阶段中,我们Clone源码,同时,定义了一个变量叫mvnHome。
- Build:在该阶段中,我们执行 mvn clean install 命令,其中针对操作系统做了判断。
- Email:如果构建成功,就发送邮件到 511932633 @ qq.com 。
3 Pipeline脚本功能非常强大,默认支持数十个指令!你可能担心指令学习的成本,但这种担心其实是多余的——只需点击下图中的 流水线语法 按钮,就可以傻瓜化地使用Pipeline语法啦!
![84a64771f70f8b9697fc92220c8bede7.png](https://i-blog.csdnimg.cn/blog_migrate/4dfb686da0d66a4cb569b939eb42c8ab.jpeg)
近期热文
- AWS CTO对过去十年的经验总结 – 十条军规
- 我们总结了每个技术团队都会遇到的 4 个难题
- 微服务架构下,解决数据一致性问题的实践
干货分享
最近将个人学习笔记整理成册,使用PDF分享。关注我,回复如下代码,即可获得百度盘地址,无套路领取!
- 001:《Java并发与高并发解决方案》学习笔记;
- 002:《深入JVM内核——原理、诊断与优化》学习笔记;
- 003:《Java面试宝典》
- 004:《Docker开源书》
- 005:《Kubernetes开源书》
您的关注是对我最大的支持!
本文首发:http://www.itmuch.com/work/jenkins-in-action/