前面讲了docker 安装Jenkins和gitlab代码管理工具,接下来我们讲一下Jenkins怎么构建 Maven项目。
1. 首先Jenkins配置下面3中工具类
首先是在本地安装三个jenkins自动配置相关的工具
1.1 JDK
由于我们使用docker来启动jenkins,其自带有jdk,因此不需要再下载JDK,查看其容器携带的config.v2.json可发现,jdk路径为:
路径为:/opt/java/openjdk
1.2 Git
安装git:apt-get install git
路径为:/usr/bin/git
1.3 Maven
解压后设置maven 的下载路径和下载源
设置maven的环境路径
上面全部准备好了,要安装maven插件,git插件
接着安装git客户端设置账号。这里不做介绍了。
2. 配置gitlab访问Jenkins的权限
进入jenkins容器内部,生成ssh key
保存后,我们在gitlab上分别创建组,角色,账号,项目。
这里我们创建一个springboot 的maven项目:
然后提交到仓库:
2. 配置Jenkins的环境和创建构建项目
分别配置maven的setting.xml路径,jdk路径,git路径,maven路径。
3. 配置Jenkins访问git的凭证
接着配置gitlab api访问token:
1.gitlab 设置jenkins 访问的token:
2.gitlab 生成第三方访问的令牌:
点击创建令牌,会生成一个token访问令牌串。
3.jenkins的凭证管理添加gitlab的刚才上面生成的token访问令牌串
配置好了之后,我们可以验证一下,看看是否正常:
当然,我们可以配置gitlab的一些全局变量:
当 GitLab 通过插件触发构建时,会根据 GitLab 发送的 JSON 有效负载设置各种环境变量。您可以在整个作业配置中使用这些。可用的变量是:
gitlabBranch
获取提交到 gitlab 仓库的当前分支名,如:main
gitlabSourceBranch
当用户合并分支时,获取要合并的 gitlab 源分支名,如:main
gitlabActionType
获取当前 gitlab 操作类型,如:NOTE
, PUSH
, MERGE
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 的语句
4. 创建maven项目:
点击下一步即可。
分别配置上面的步骤即可。
接下来我们提交代码:
这个时候我们发现已经开始构建了:
可以看到gitlab代码自动推到jenkins后自动构建发版。
我们通过浏览器地址来访问看看结果:
可以看到已经成功了!后面接着讲其定时任务触发,轮询的方式来构建。