SonarQube+jenkins搭建「终于解决」

SonarQube+jenkins搭建「终于解决」本文是使用SonarQube社区版进行验证。注:Sonarqube Community 社区版是不支持多分区扫描的,可以安装开源插件实现。社区版

欢迎大家来到IT世界,在知识的湖畔探索吧!

本文是使用SonarQube社区版进行验证。

注:Sonarqube Community 社区版是不支持多分区扫描的,可以安装开源插件实现。

社区版分支扫描,需安装开源插件,插件下载地址 https://github.com/mc1arke/sonarqube-community-branch-plugin

一、SonarQube Server 安装

参考文章:docker-compose快速部署SonarQube

二、SonarQube 插件、配置、创建项目

2.1、页面安装插件

修改为中文:SonarQube中文设定设定方法

SonarQube+jenkins搭建「终于解决」

2.2、手动安装插件

1、如果在SonarQube 管理页面无法搜索到插件,可以从https://binaries.sonarsource.com/Distribution/手动下载jar包。

SonarQube+jenkins搭建「终于解决」

2、下载完成后建jar包放到目录:/opt/sonarqube/extensions/plugins 下

3、重启SonarQube server 服务

java插件: https://binaries.sonarsource.com/Distribution/sonar-java-plugin/

2.3、配置

1、生产TOken administrator–>我的账户–>安全–>创建token

SonarQube+jenkins搭建「终于解决」

2、创建项目 右上角加号–>名称:test_java–>已有令牌–>创建成功

三、jenkins配置

3.1、安装插件

插件名:SonarQube Scanner for Jenkins

3.2、添加token认证

凭据–>全局凭据–>添加凭据–>Secret text Secret输入token ID输入:sonar_token

3.3、系统管理

系统管理–>系统配置–>SonarQube servers 添加Name:sonar #名称在pipeline代码credentialsId中会使用到 URL:http://192.168.10.230:9000/ 选择token:sonar_token

3.4、全局工具配置

新增SonarQube Scanner name: sonarscanner #名称在tool name 会使用到 版本: SonarQube Scanner 4.6.2.2472

四、pipeline代码

4.1、代码一

stage('代码质量分析'){
            steps {
                dir("code"){
                    script {
                        def scannerHome = tool name: 'sonarscanner'
                    }
                    withSonarQubeEnv(installationName: 'Sonar',credentialsId: 'sonar'){
                        sh "${scannerHome}/bin/sonar-scanner " +
                           "-Dsonar.branch.name=uat " +
                           "-Dsonar.projectKey=test_java " +
                           "-Dsonar.projectName=test_java " +
                           "-Dsonar.sourceEncoding=UTF-8 " +
                           "-Dsonar.language=java " +
                           "-Dsonar.projectVersion=1.0 " +
                           "-Dsonar.sources=. " +
                           "-Dsonar.java.binaries=."
                    }
                }
            }
        }

欢迎大家来到IT世界,在知识的湖畔探索吧!

4.2、代码二

不使用jenkins凭证,直接在项目代码目录下执行命令

欢迎大家来到IT世界,在知识的湖畔探索吧!stage('代码质量分析'){
            steps {
                dir("code"){
                    script {
                        def scannerHome = tool name: 'sonarscanner'
                        sh "${scannerHome}/bin/sonar-scanner " +
                           "-Dsonar.host.url=http://192.168.10.230:9000 " +
                           "-Dsonar.login=51d1b2ce2a65834241220b7e748ce5c33d4220fb " +
                           "-Dsonar.branch.name=uat " +
                           "-Dsonar.projectKey=test_java " +
                           "-Dsonar.projectName=test_java " +
                           "-Dsonar.sourceEncoding=UTF-8 " +
                           "-Dsonar.language=java " +
                           "-Dsonar.projectVersion=1.0 " +
                           "-Dsonar.sources=. " +
                           "-Dsonar.java.binaries=."
                    }
                }
            }
        }

sonar-scanner说明:

-Dsonar.host.url: 地址为sonarQube Server 地址

-Dsonar.login: sonarQube 生成的Token

-Dsonar.projectKey: SonarQube 建立的项目

-Dsonar.projectName: 可以和-Dsonar.projectKey 一致

-Dsonar.sourceEncoding: 编译方式

-Dsonar.language: 项目语言

-Dsonar.projectVersion: 自定义输入

-Dsonar.sources: 代码目录,.点代表当前目录

-Dsonar.java.binaries: SonarQube 在4.12后版本强制要求,后面必须跟.

五、扫描结果

SonarQube+jenkins搭建「终于解决」

六、其他说明

6.1、withSonarQubeEnv

使用withSonarQubeEnv来使用上面在Jenkins上配置SonarQube server的信息,不用再指定sonar.host.url和sonar.login mvn sonar:sonar后可以添加代码质量分析的参数,分析参数说明参见: https://docs.sonarqube.org/latest/analysis/analysis-parameters/

6.2、SonarQube Community 版本不支持多分支扫描

SonarQube Developer Edition 及以上版本是支持多分支扫描的,扫描时指定分支参数-Dsonar.branch=develop即可,就可以实现多分支代码扫描

//pipeline中如果没有打印调试信息,可以使用如下命令进行测试

/home/jenkins/agent/tools/hudson.plugins.sonar.SonarRunnerInstallation/sonarscanner/bin/sonar-scanner \\
-Dsonar.host.url=http://192.168.10.230:9000 \\
-Dsonar.login=51d1b2ce2a65834241220b7e748ce5c33d4220fb \\
-Dsonar.branch.name=release \\
-Dsonar.projectKey=uat_academic-affairs-center \\
-Dsonar.projectName=uat_academic-affairs-center \\
-Dsonar.sourceEncoding=UTF-8 \\
-Dsonar.language=java \\
-Dsonar.projectVersion=1.0 \\
-Dsonar.sources=. \\
-Dsonar.java.binaries=. \\
-X

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22923.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信