pipleline+sonarqube+blueOcean

安装插件

Build Pipeline Plugin
SonarQube Scanner for Jenkins
Blue Ocean

添加sonar server

Jenkins -> 系统管理 -> 系统设置 -> SonarQube servers->添加

添加sonar scanner

Jenkins -> 系统管理 -> 全局工具配置 -> SonarQube Scanner->添加

项目目录结构

yum -y install tree
[root@yfm07 web1]# tree
.
├── aaa.txt
├── README.md
├── sonar-project.properties
└── src
    └── aa.java

1 directory, 4 files

[root@yfm07 web1]# cat src/aa.java 
public class aa {
    public static void main(String[] args) {
        System.out.println("hello world");
    }
}

[root@yfm07 web1]# cat sonar-project.properties 
# must be unique in a given SonarQube instance
sonar.projectKey=cynomys:0.0.1
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=cynomys
sonar.projectVersion=0.0.1

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=.
sonar.projectBaseDir=src
sonar.binaries=classes
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

在项目构建这一步,选择增加构建步骤,在可以选择的步骤里面,选择执行Sonar Scanner,选择JDK和SonarQube Scanner插件,并且配置项目Properties:

#required metadata
#projectKey项目的唯一标识,不能重复
sonar.projectKey=xjglxt
sonar.projectName=xjglxt
sonar.projectVersion=1.0 
sonar.sourceEncoding=UTF-8
sonar.modules=java-module
 
# Java module
java-module.sonar.projectName=Java Module
java-module.sonar.language=java
# .表示projectBaseDir指定的目录
java-module.sonar.sources=.
java-module.sonar.projectBaseDir=src
sonar.binaries=classes

在这里插入图片描述

新增pipline模式job

pipline script,如果使用ssh方式复制代码,需要通过credentialsId参数配置Jenkins中配置好的秘钥ID
在这里插入图片描述

#tool name: 'SonarQube Scanner'等于全局工具配置里面配置的scanner name
#withSonarQubeEnv('SonarQube') 等于系统设置里面sonarqube name

node {
    stage('SCM') {
        git([url: '[email protected]:develop/web1.git', branch: 'master', credentialsId: '192.168.199.101'])
    }
    stage('SonarQube analysis') {
        def sonarqubeScannerHome = tool name: 'SonarQube Scanner'

        withSonarQubeEnv('SonarQube') {
            sh "${sonarqubeScannerHome}/bin/sonar-scanner"
        }
    }
}

在这里插入图片描述

在这里插入图片描述

参考:

扫描二维码关注公众号,回复: 13132138 查看本文章

Jenkins Pipline&&maven项目引入Sonar插件

代码质量管理:SonarQube + Jenkins Pipeline配置

猜你喜欢

转载自blog.csdn.net/yfm081616/article/details/114251772