为什么要配置

​ 现在主要是使用SonarQube,在我们将项目上传到gitlab后,Jenkins自动对项目进行构建,并通过SonarQube进行代码分析,方便詹老师查看。

注意

​ 因为我们各微服务都有引入基础框架,所以一定要先配置基础框架跟starter,将jar先安装到jenkins服务器的maven中,我们各微服务才能正常构建

创建SonarQube工程

SonarQube控制台地址

  • 进入首页后点击 Log in 登录

账号:admin 密码:admin

  • 点击右上角的 + 新建项目

在这里插入图片描述

  • 输入 Project Key

请修改成自己的项目名称!我这是由组名+项目artifactId组成,这个是自定义的,不重复就好。然后点Set Up
在这里插入图片描述

  • 选择Token

在这里插入图片描述

选择User existing token,输入bosssoft。点击Continue,选择Java、Maven就好

Jenkins配置

Jenkins控制台

账号: admin 密码:123456

首次构建,配置凭据(此步骤每组有一个人做了就好)

  • 点击左侧的凭据,点击系统,点击表格中的全局凭据

在这里插入图片描述

  • 点击新增凭据

在这里插入图片描述

  • 点击确定新增完毕,返回凭据栏发现刚刚新增的凭据已经出现

在这里插入图片描述

构建项目

  • 在首页点击左上角的New Item

  • 选择构建方式

  • 配置Build Triggers

直接拉到Build Triggers,这里是配置当我们上传项目到gitlab时自动推送到jenkins进行构建

  • 打开gitlab中的项目,添加配置

  • 配置Pipeline

在这里插入图片描述

  • 打开Pipeline语法构建器

打开后点Sava,项目构建成功,构建器打开先放着,下面用。

配置项目

  • 在项目根目录下新建 Jenkinsfilesonar-project.properties两个文件,注意J是大写
pipeline {
    agent any

    stages {
        stage('pull code') {
            steps {
                // TODO 这里需要等等使用Pipeline构建器生成 记得删除此行
            }
        }
        stage('build project') {
            steps {
                sh label: '', script: 'mvn clean install package -Dmaven.test.skip=true'
            }
        }
        stage('code checking') {
            steps {
                script {
                    scannerHome = tool 'MyScanner'
                }
                withSonarQubeEnv('MySonarQube') {
                    sh "${scannerHome}/bin/sonar-scanner"
                }
            }
        }
    }
}
# 这里就是SonarQube里新建项目的key
sonar.projectKey=这里填在SonarQube里创建的项目名
sonar.projectName=这里填在SonarQube里创建的项目名
sonar.projectVersion=1.0-SNAPSHOT


sonar.sources=.
sonar.exclusions=**/test/**,**/target/**

sonar.java.source=1.8
sonar.java.target=1.8
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8

# 如果是多模块项目就填:**/target/classes
# 如果是starter这样的单模块项目就用:./target/classes
sonar.java.binaries=**/target/classes
  • 使用Pipeline语法构建器

选择checkout: Check out from version control

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

粘贴到Jenkinsfile文件中,刚刚是TODO的地方

  • 将代码推送到gitlab上
  • 推送后Jenkins会自动构建,我们到项目中查看构建结果

在这里插入图片描述

全绿则表示构建成功。

  • 查看SonarQube

在这里插入图片描述

已有结果,完成!

配置推送钉钉

构建成功后,我们还需要将构建成功的消息推送到钉钉群聊

配置钉钉

  • 在自己群聊新增机器人(需要使用PC版)
    在这里插入图片描述
  • 点击添加机器人,选择自定义
    在这里插入图片描述
  • 输入机器人信息,名字,安全设置选加签
    在这里插入图片描述

配置Jenkins

  • 进入系统设置
    在这里插入图片描述
  • 找到钉钉,配置机器人
    在这里插入图片描述在这里插入图片描述填写完可以点测试测一下
    在这里插入图片描述
    保存配置

配置Jenkins项目(方式一)

选择刚刚自己配置的机器人,可以进行高级配置,选择需要@的人和自定义信息。如果需要@多人要多行填写,可以点击右边的?查看
在这里插入图片描述

  • 测试
    推送代码到gitlab
    构建完成后钉钉收到信息推送
    在这里插入图片描述

配置Jenkins项目(方式二)

如果觉得方式一的推送方式不满足我们的需求,我们可以使用pipeline自定义消息通知。
使用文档
我这演示一个MD格式的

  • 取消勾选Jenkins项目中的钉钉机器人
    在这里插入图片描述
  • 修改项目中的Jenkinsfile
    这里的robot就是Jenkins里创建的钉钉机器人ID,请替换成自己的
stage('push dingding') {
   steps {
       echo '测试 MARKDOWN 消息...'
   }
   post {
        success {
            dingtalk (
                robot: '这里的robot就是Jenkins里创建的钉钉机器人ID,请替换成自己的',
                type: 'MARKDOWN',
                title: '基础框架构建成功',
                text: [
                    '# 基础框架已构建成功',
                    '',
                    '---',
                    '[Jenkins控制台](http://58.22.61.222:27010/)',
                    '[SonarQube控制台](http://58.22.61.222:19875/)'
                ],
                at: [
                    '钉钉账号'
                ]
            )
        }
    }
}
  • 推送代码测试
    在这里插入图片描述更多功能可以查看上面的文档使用~

注意

每组一定要先配置自己gitlab组的凭据,随意使用一个人的账号密码就行了,只要他有权限访问到所有项目就ok。

然后一定要先构建基础框架,然后将starter也做一遍,做starter只是为了将jar包安装到jenkins服务器的maven中,构建完starer在SonarQube和Jenkins中的项目就可以删了。

当基础框架和starter都做好后,再来构建各微服务。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐