目录
简介
本文内容为项目通过push推送,触发Jenkins自动构建,打包成JAR并同步推送到私服仓库 Nexus。尽量解耦各配置的权限控制(多点的废话留在文章最后讲解)
简易流程:springBoot -> Git -> Jenkins -> Maven -> Nexus
前期需要准备:
1、创建一个简易springBoot项目推送到git(公共或是私搭)
2、在Linux服务器部署Jenkins
(插件视情况自行增减,其中必不可少的有:Gitlab、Gitlab Hook、Gitlab Authentication、Config File Provider Plugin )
3、部署Nexus(2.x或是3.x都可以,这里只是用来存储构建JAR包)
PS:详细创建项目和部署流程找度娘,这里直接到文章主要重点“配置流程”。
配置流程
1、配置maven的setting.xml
(页面可能会因Jenkins 版本不同而有局部展示不一样,不影响)
系统管理-》管理插件-》搜索Config File Provider Plugin,点击直接安装,安装成功后在系统管理中会显示“Managed files”
2、添加配置文件setting.xml
自定义setting.xml搞定,开始项目端关联配置
3、创建配置项目
配置内容(不同版本也有些微小差异,不影响):
临时插边,以上配置已经拿到 webhook URL 和 Secret token , 那我们就配置到 git 项目的高级设置里面配置。配置好后,测试一下,成功如下图7步骤一样给到提示
PS:
1、Jenkins 没配置完,是会添加失败的)
2、Jenkins部署的域名IP地址必须和git仓库是互通的
这里将使用到我们自定义的配置setting.xml文件
以上配置流程就完毕。
之后我们推送代码到项目的master分支
可以在项目控制台查看到触发运行流程
本文配置流程解决点
1、配置解构:以前都是在项目pom内部配置<distributionManagement>
<repository>
<id>nexus</id>
<name>Releases</name>
<url>http://xxx.xxx.xxx/repository/maven-releases</url>
</repository>
<snapshotRepository>
<id>nexus</id>
<name>Snapshot</name>
<url>http://xxx.xxx.xxx/repository/maven-snapshots</url>
</snapshotRepository>
</distributionManagement>
进行推送,被拿到jar包可能会引起仓库地址暴露(非内网),有些还会把用户名/密码配置在里面。现在仓库配置放入构建服务Jenkins 内,打成的JAR 无此点问题。2、maven的setting.xml文件配置变得灵活,由运维自行定义配置内容,方便更改。
作用:Nexus仓库可能会分多个权限账号,有负责推送,有负责拉取。开发分配到的server的用户名/密码,可能只有拉取权限,避免多人进行推送操作。3、构建发布JAR版本的代码管控
通过配置推送的触发权限,在Git管理端设置master分支权限只给固定管理人员可推送,防止多人推送出发构建条件。最后感谢以下的码友文章(我只是个整合搬运工):
jenkins maven设置settings.xml
jenkins实现master变化时,才触发构建(过滤分支)
腾讯工蜂Git关联Jenkins Hooks