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


    前面讲了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 操作类型,如: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 的语句

      4. 创建maven项目:

     

    点击下一步即可。

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

    接下来我们提交代码:

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

     

     

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

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

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

  • 相关阅读:
    使用drawio的图层构建更强大的图表
    【Linux】常用内核函数
    idea 导入项目
    LeetCode——动态规划篇(二)
    Matlab学习笔记
    springboot+springsecurity+jwt+elementui图书管理系统
    【modbus协议】Modbus-TCP消息帧格式
    Word中 Go to endnote 出现闪退问题解决办法
    VR全景应用广泛体现在哪里?有何优势?
    Nginx负载均衡之Memcached缓存模块
  • 原文地址:https://blog.csdn.net/lchmyhua88/article/details/139579456