31-Jenkins-使用Pipeline实现集成SoanrQube

Posted 爱学习de测试小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了31-Jenkins-使用Pipeline实现集成SoanrQube相关的知识,希望对你有一定的参考价值。

使用Pipeline实现集成SoanrQube


前言

  • 上一篇介绍了自由风格项目集成SoanrQube,本篇学习如何使用Pipeline集成SoanrQube

Pipeline集成SoanrQube

1.项目下新建SoanrQube检测配置文件

  • 新建sonar-project.properties文件(文件名是固定的,不要自己定义)
# SonarQube中项目的唯一标识符。只要它是唯一的
sonar.projectKey=java_demo_pipeline

#  SonarQube 中显示的项目名称
sonar.projectName=java_demo_pipeline
# 版本号,可自定义
sonar.projectVersion=1.0

# 配置扫描的代码目录
sonar.sources=.

# 编译后文件目录,不加会报错
sonar.java.binaries=target

# 检查语言
sonar.language=java
# 编码格式
sonar.sourceEncoding=UTF-8

# 不需要检测的文件
sonar.exclusions=**/*.js,**/*.xml,html,**/test/**,**/target/**

2.编写Pipeline

 pipeline 
    agent any

    stages 
        stage('pull code') 
            steps 
                checkout([$class: 'GitSCM', branches: [[name: '*/分支']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitlab秘钥', url: '你的gitlab地址']]])
            
        
        stage('sonarqube code checking ') 
            steps 
               script
                  // 引入SonarQubeScanner工具;sonar-scanner 与前面在Global Tool Configuration中配置的Name值一致
                   scannerHome = tool 'sonar-scanner'
               
               //引入SonarQube服务器环境;sonarqube 与前面在System Configuration 配置的Name值一致
               withSonarQubeEnv('sonarqube')
               	  // 我这里是windows环境所以使用 bat
                  bat "$scannerHome/bin/sonar-scanner"
                  // linux 环境使用下面的命令
                  //sh "$scannerHome/bin/sonar-scanner"
               

            
        
        stage('build project') 
            steps 
                // 我这里是windows环境所以使用 bat
                bat 'mvn clean package'
                // linux 环境使用下面的命令
                //sh 'mvn clean package'
            
        
        stage('deploy project') 
            steps 
               // 这里只是打印,没有真正部署
               println 'deploy project'
        




3. 新建project

  • 在流水线部分,写入上面的pipeline

4. 查看报告

  • build now 后点击查看报告
  • 下面是sonarqube报告

以上是关于31-Jenkins-使用Pipeline实现集成SoanrQube的主要内容,如果未能解决你的问题,请参考以下文章

jenkins pipeline持续集成

(转)Jenkins2.0 Pipeline 插件执行持续集成发布流程

自动化集成:Pipeline整合Docker+K8S

pipeline 学习

自动化集成:Pipeline整合Docker容器

在容器中运行 Jenkins pipeline 任务