赞
踩
基于以上现状,在项目里推出Jenkins自动化打包部署方案,带来以下改观:
此处以【2.426.1 LTS Windows】版本为例
第一次启动
Win+R 打开cmd窗口
java -Xms4096m -Xmx8192m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=8192m -DJENKINS_HOME=D:\SOFT\jenkins2.426.1-dev\jenkins -jar D:\SOFT\jenkins2.426.1-dev\jenkins.war --httpPort=8090
-DJENKINS_HOME 该参数指定Jenkins工作目录,打包工程会存放该目录
--httpPort 指定启动端口(默认为:8080)
启动成功后终端会打印出初始密码
访问Jenkins Web端(http://localhost:8090 端口如果未指定默认用8080)
初始密码也可通过配置文件中获取,路径为:
%JENKINS_HOME\secrets\initialAdminPassword
安装插件,可选择按推荐的安装也可选择自定义安装,后续也可根据需要在插件中心中安装插件
注:等待所有插件安装结束后会自动跳转页面,若安装插件失败,多半是由于插件中心地址访问超时,可修改为国内地址,重新安装即可
--修改插件中心地址
--配置文件目录:%JENKINS_HOME\hudson.model.UpdateCenter.xml
<url>http://mirror.xmission.com/jenkins/updates/update-center.json</url>
创建管理员用户
实例配置
配置好之后的jenkins页面
大家打开基础版的Jenkins后就会发现,虽然Jenkins安装成功了,但似乎还不太满足项目构建的需要,当然了Jenkins提供了很多个性化的插件,我们可以根据需要自由搭配来满足不同场景的构建需求
比如:我想新建一个Maven的构建,基础版是没有该选项的,那么我们可以在插件中心去安装该类插件
打开插件中心
此处罗列常用的功能插件
插件名称 | 插件功能 |
---|---|
Maven Integration | 构建Maven项目 |
JDK Parameter | 当工程jdk与jenkins所需jdk不一致时,可单独指定打包工程所用java环境 |
Publish Over SSH | 用于构建成功后发布物上传 |
Build Authorization Token Root | 用于代码管理平台,如gitlab上配置回调钩子,在代码更新后调用触发jenkins构建 |
… | … |
Maven配置
菜单路径:Dashboard\Manage Jenkins\Tools
JDK配置
菜单路径:Dashboard\Manage Jenkins\Tools
SSH配置
菜单路径:Dashboard\Manage Jenkins\System(该配置有所不同,在System下)
新增Maven构建项目
指定JDK参数
修改并发构建参数
修改后在上游项目未构建完成时,如果主动触发构建下游项目会阻止构建放到等待队列里,避免做无用构建
添加Git信息
去掉POM项目依赖检查
此处去掉该检查的意义在于,如果勾选了该选项,Jenkins会自动根据pom文件识别出项目上下级依赖关系,会在上游项目构建完成后自动触发下游项目,去掉勾选后自行指定依赖,让Jenkins完全按照配置来打包
指定pom文件路径
默认在该工程目录的下一级,如果需要指定到更深层次pom,只需要添加工程目录下的路径即可
添加构建后windows执行脚本
由于我们已有部署平台,通过部署平台上传部署包,同时会更新数据库信息,直接上传到服务器目录并不会做登记,所以我们统一将发布物复制到固定目录,Jenkins可直接执行Windows batch command
添加构建后SSH上传
非必须,该处为演示
添加构建后触发其他项目
该处可指定上下游关系,上游项目构建成功后会触发下游项目打包
配置远程触发构建
该功能可以配合GitLab的Webhooks事件使用,在代码Push、Merge等场景下执行远程调用脚本,自动触发Jenkins构建
项目内已经持续使用了一个多月,目前两套频繁使用的测试环境都是通过Jenkins来构建,在满足使用的前提下也带来很多便捷,最主要的是开发人员习惯的改变,当然了凡事都有两面性,对于频繁打版的测试环境,也暴露出自动化构建的一些短板。
亮点也好,短板也罢,Jenkins的设计初衷当然并非为了解决某一个项目的问题,亮点应该就是用对了场景,短板也应该还有其他的解决方案,局限我们的不是工具,而是思维。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。