Jenkins构建 Maven项目(微服务)并自动发布

作者 : admin 本文共2455个字,预计阅读时间需要7分钟 发布时间: 2024-06-17 共1人阅读

前面讲了docker 安装Jenkins和gitlab代码管理工具,接下来我们讲一下Jenkins怎么构建 Maven项目。

1. 首先Jenkins配置下面3中工具类
首先是在本地安装三个jenkins自动配置相关的工具

1.1 JDK
由于我们使用docker来启动jenkins,其自带有jdk,因此不需要再下载JDK,查看其容器携带的config.v2.json可发现,jdk路径为:

 Jenkins构建 Maven项目(微服务)并自动发布插图
路径为:/opt/java/openjdk
1.2 Git 

安装git:apt-get install git

Jenkins构建 Maven项目(微服务)并自动发布插图(1)

路径为:/usr/bin/git
1.3 Maven
 Jenkins构建 Maven项目(微服务)并自动发布插图(2)

Jenkins构建 Maven项目(微服务)并自动发布插图(3)解压后设置maven 的下载路径和下载源                           Jenkins构建 Maven项目(微服务)并自动发布插图(4)
 设置maven的环境路径 

Jenkins构建 Maven项目(微服务)并自动发布插图(5)

 Jenkins构建 Maven项目(微服务)并自动发布插图(6)

上面全部准备好了,要安装maven插件,git插件

Jenkins构建 Maven项目(微服务)并自动发布插图(7)

Jenkins构建 Maven项目(微服务)并自动发布插图(8)

接着安装git客户端设置账号。这里不做介绍了。

2. 配置gitlab访问Jenkins的权限

进入jenkins容器内部,生成ssh key

Jenkins构建 Maven项目(微服务)并自动发布插图(9)

Jenkins构建 Maven项目(微服务)并自动发布插图(10)

Jenkins构建 Maven项目(微服务)并自动发布插图(11)

 保存后,我们在gitlab上分别创建组,角色,账号,项目。

Jenkins构建 Maven项目(微服务)并自动发布插图(12)

这里我们创建一个springboot 的maven项目:

Jenkins构建 Maven项目(微服务)并自动发布插图(13)

 然后提交到仓库:

Jenkins构建 Maven项目(微服务)并自动发布插图(14)

 2. 配置Jenkins的环境和创建构建项目

分别配置maven的setting.xml路径,jdk路径,git路径,maven路径。

Jenkins构建 Maven项目(微服务)并自动发布插图(15)

Jenkins构建 Maven项目(微服务)并自动发布插图(16)

Jenkins构建 Maven项目(微服务)并自动发布插图(17)

Jenkins构建 Maven项目(微服务)并自动发布插图(18)  3. 配置Jenkins访问git的凭证

   Jenkins构建 Maven项目(微服务)并自动发布插图(19)

Jenkins构建 Maven项目(微服务)并自动发布插图(20)

 接着配置gitlab api访问token:

1.gitlab 设置jenkins 访问的token:

Jenkins构建 Maven项目(微服务)并自动发布插图(21)

2.gitlab 生成第三方访问的令牌:

Jenkins构建 Maven项目(微服务)并自动发布插图(22)

Jenkins构建 Maven项目(微服务)并自动发布插图(23)

点击创建令牌,会生成一个token访问令牌串。

3.jenkins的凭证管理添加gitlab的刚才上面生成的token访问令牌串

Jenkins构建 Maven项目(微服务)并自动发布插图(24)

Jenkins构建 Maven项目(微服务)并自动发布插图(25)

配置好了之后,我们可以验证一下,看看是否正常:

Jenkins构建 Maven项目(微服务)并自动发布插图(26)

当然,我们可以配置gitlab的一些全局变量:

定义变量

当 GitLab 通过插件触发构建时,会根据 GitLab 发送的 JSON 有效负载设置各种环境变量。您可以在整个作业配置中使用这些。可用的变量是:

gitlabBranch

获取提交到 gitlab 仓库的当前分支名,如:main

gitlabSourceBranch

当用户合并分支时,获取要合并的 gitlab 源分支名,如:main

gitlabActionType

获取当前 gitlab 操作类型,如:NOTEPUSHMERGE

gitlabUserName

获取提交到 gitlab 仓库的用户名称,如:mavendemo 

gitlabUserUsername

获取提交到 gitlab 仓库的用户用户名

gitlabUserEmail

获取提交到 gitlab 仓库的用户邮箱地址,如:huage@gmain.com

gitlabSourceRepoHomepage

获取提交到 gitlab 源仓库地址,如:http://192.168.33.10/devop/mavendemo.git

gitlabSourceRepoName

获取提交到 gitlab 源仓库名,如:mavendemo 

gitlabSourceNamespace

获取提交到 gitlab 源仓库的命名空间,如:GitLab Instance

gitlabSourceRepoURL

获取提交到 gitlab 源仓库的 URL 地址,如:http://192.168.33.10/devop/mavendemo.git

gitlabSourceRepoSshUrl

获取提交到 gitlab 源仓库的 SSH URL 地址,如:9922@192.168.33.10:devop/mavendemo.git

gitlabSourceRepoHttpUrl

获取提交到 gitlab 源仓库的 HTTP URL 地址,如:http://192.168.33.10/devop/mavendemo.git

gitlabMergeRequestTitle

获取合并分支请求时的标题,如:Update hello.sh

gitlabMergeRequestDescription

获取合并分支请求时的描述信息,如:Update hello.sh

gitlabMergeRequestId

获取合并分支请求时的 ID,如:7

gitlabMergeRequestIid

获取合并分支请求时的 I ID,如:7

gitlabMergeRequestState

获取合并分支请求的状态

gitlabMergedByUser

获取合并分支的用户名

gitlabMergeRequestAssignee

获取合并分支请求时的受让人

gitlabMergeRequestLastCommit

获取合并分支请求时的源分支最后的 commit id

gitlabMergeRequestTargetProjectId

获取合并分支请求时的目标项目 ID

gitlabTargetBranch

当用户合并分支时,获取要合并的 gitlab 目标分支名,如:test

gitlabTargetRepoName

获取提交到 gitlab 目标仓库名,如:Test

gitlabTargetNamespace

获取提交到 gitlab 目标仓库的命名空间,如:GitLab Instance

gitlabTargetRepoSshUrl

获取提交到 gitlab 目标仓库的 SSH URL 地址,如:9922@192.168.33.10:devop/mavendemo.git

gitlabTargetRepoHttpUrl

获取提交到 gitlab 源仓库的 HTTP URL 地址,如:9922@192.168.33.10:devop/mavendemo.git

gitlabBefore

gitlabAfter

gitlabTriggerPhrase

获取触发 gitlab 构建 Jenkins 的语句

Jenkins构建 Maven项目(微服务)并自动发布插图(27)

  4. 创建maven项目:

 Jenkins构建 Maven项目(微服务)并自动发布插图(28)

点击下一步即可。

Jenkins构建 Maven项目(微服务)并自动发布插图(29)

Jenkins构建 Maven项目(微服务)并自动发布插图(30)

Jenkins构建 Maven项目(微服务)并自动发布插图(31)

Jenkins构建 Maven项目(微服务)并自动发布插图(32)

 分别配置上面的步骤即可。

接下来我们提交代码:

Jenkins构建 Maven项目(微服务)并自动发布插图(33)

这个时候我们发现已经开始构建了:

 Jenkins构建 Maven项目(微服务)并自动发布插图(34)

Jenkins构建 Maven项目(微服务)并自动发布插图(35) Jenkins构建 Maven项目(微服务)并自动发布插图(36)

Jenkins构建 Maven项目(微服务)并自动发布插图(37)

Jenkins构建 Maven项目(微服务)并自动发布插图(38)

可以看到gitlab代码自动推到jenkins后自动构建发版。

Jenkins构建 Maven项目(微服务)并自动发布插图(39)

 我们通过浏览器地址来访问看看结果:

Jenkins构建 Maven项目(微服务)并自动发布插图(40)

 可以看到已经成功了!后面接着讲其定时任务触发,轮询的方式来构建。

本站无任何商业行为
个人在线分享 » Jenkins构建 Maven项目(微服务)并自动发布
E-->