Jenkins流水线构建gitlab项目整合SonarQube扫描代码
文章目录为什么要配置注意创建SonarQube工程Jenkins配置首次构建,配置凭据(此步骤每组有一个人做了就好)构建项目配置项目注意为什么要配置现在主要是使用SonarQube,在我们将项目上传到gitlab后,Jenkins自动对项目进行构建,并通过SonarQube进行代码分析,方便詹老师查看。注意因为我们各微服务都有引入基础框架,所以一定要先配置基础框架跟starter,将jar先安
文章目录
为什么要配置
现在主要是使用SonarQube,在我们将项目上传到gitlab后,Jenkins自动对项目进行构建,并通过SonarQube进行代码分析,方便詹老师查看。
注意
因为我们各微服务都有引入基础框架,所以一定要先配置基础框架跟starter,将jar先安装到jenkins服务器的maven中,我们各微服务才能正常构建
创建SonarQube工程
- 进入首页后点击 Log in 登录
账号:admin 密码:admin
- 点击右上角的 + 新建项目
- 输入 Project Key
请修改成自己的项目名称!我这是由组名+项目artifactId组成,这个是自定义的,不重复就好。然后点Set Up
- 选择Token
选择User existing token,输入bosssoft。点击Continue,选择Java、Maven就好
Jenkins配置
账号: admin 密码:123456
首次构建,配置凭据(此步骤每组有一个人做了就好)
- 点击左侧的凭据,点击系统,点击表格中的全局凭据
- 点击新增凭据
- 点击确定新增完毕,返回凭据栏发现刚刚新增的凭据已经出现
构建项目
- 在首页点击左上角的New Item
- 选择构建方式
- 配置Build Triggers
直接拉到Build Triggers,这里是配置当我们上传项目到gitlab时自动推送到jenkins进行构建
- 打开gitlab中的项目,添加配置
- 配置Pipeline
- 打开Pipeline语法构建器
打开后点Sava,项目构建成功,构建器打开先放着,下面用。
配置项目
- 在项目根目录下新建 Jenkinsfile、sonar-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都做好后,再来构建各微服务。
更多推荐
所有评论(0)