使用sonarqube对java项目进行分析


目前有两种办法,第一种是使用SonarQube-Scanner-Maven,第二种是结合gitlab-ci进行

前提条件:已安装并启动sonarqube,知道访问地址和登录的用户名及密码,具体参考文档:

第一种办法:使用SonarQube-Scanner-Maven

官方文档地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/

要求

1.maven版本:3.x (我这里使用的是3.5.4版本,配置好环境变量)
2.至少SonarQube服务器支持的最低版本的Java正在使用中,也就是最低java版本是11

我这里统一使用jdk-11.0.2版本
下载地址:https://repo.huaweicloud.com/openjdk/11.0.2/

SonarQube安装在centos 7系统上,使用的软件包是:openjdk-11.0.2_linux-x64_bin.tar.gz (配置好环境变量)
本机电脑是windows10系统,使用的软件包是:openjdk-11.0.2_windows-x64_bin.zip (配置好环境变量)

maven设置

找到maven的配置文件:settings.xml,添加如下内容


    
        org.sonarsource.scanner.maven
    
    
        
            sonar
            
                true
            
            
                
                
                  http://192.168.2.161:9000  
                
            
        
     

sonarqube获取token

登录sonarqube,点击右上角的用户名,选中“我的账号”,切换到“安全”,输入令牌名称,点击生成令牌,复制这个。

分析使用命令:mvn clean verify sonar:sonar -Dsonar.login=Token # 把Token换成上面生成的令牌

mvn clean install
mvn sonar:sonar -Dsonar.login=Token

# 使用指定版本的sonar 
mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar -Dsonar.login=Token

在项目根目录下执行如下命令,就会自动拉取sonar使用的有关插件,然后进行分析,结果会在sonar的web页面上显示出来

第二种办法:结合gitlab-ci进行

前提:我这边的CI/CD工具使用的是gitlab-runner,本身项目中已经存在的有.gitlab-ci.yml文件了.

1.先登录sonar的web页面,点击“项目,选择"更多",选择“来自GitLab”
2.输入名称,gitlab的api接口地址,个人token
3.输入个人令牌
4.获取到个人有权限管理的项目后,点击管理,选择使用“gitlab-ci”
5.按照页面提示在项目文件中添加内容,完成配置
6.提交代码到该分支,sonar的web页面上查看效果