sonarqube的质量配置 quality profiles
1. quality profiles是什么?
1.1 官网定义

看上去就是包含了一系列
rules的配置文件,用于代码分析。
每个项目都有quality profile集合,当代码分析的时候,项目中的每个语言都会找到激活的quality profile用于代码分析。
- 例如下面的这张图,就会使用
test-name分析java代码,用实例默认分析xml代码

 
2. quality profiles的CRUD
- 来到
quality profiles的API文档 

2.1 导出配置 GET api/qualityprofiles/backup
 
之前版本的sonarqube有一个backUp按钮,用于下载配置,但是现在的版本内置的Sonar way没看到下载的按钮!Why??
 

- 既然没有了这个按钮,那就用api导出默认的配置吧: 
GET api/qualityprofiles/backup 
 ~/data/sonar/sonarqube/data/ 
 ~/data/sonar/sonarqube/data/ curl -u admin:admin123! http://localhost:9000/api/qualityprofiles/backup\?language\=java\&qualityProfile\=Sonar%20way > sonar_way.xml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 62409    0 62409    0     0   270k      0 --:--:-- --:--:-- --:--:--  270k
 ~/data/sonar/sonarqube/data/ 
 ~/data/sonar/sonarqube/data/ 
 
quality profiles文件的内容
 
key是一个规则,暂时还不懂。。。
 ~/Downloads/ cat AY0biq7vTbeuxzbuAF0b.xml 
<?xml version='1.0' encoding='UTF-8'?>
<profile>
    <name>test-name</name>
    <language>java</language>
    <rules>
        <rule>
            <repositoryKey>java</repositoryKey>
            <key>S2204</key>
            <type>BUG</type>
            <priority>MAJOR</priority>
            <parameters/>
        </rule>
        <rule>
            <repositoryKey>java</repositoryKey>
            <key>S100</key>
            <type>CODE_SMELL</type>
            <priority>MINOR</priority>
            <parameters>
                <parameter>
                    <key>format</key>
                    <value>^[a-z][a-zA-Z0-9]*$</value>
                </parameter>
            </parameters>
        </rule>
    </rules>
</profile>
 
2.2 更新配置 POST api/qualityprofiles/restore
 

 ~/Downloads/ curl -X POST -uadmin:admin123! http://localhost:9000/api/qualityprofiles/restore --form backup=@AY0biq7vTbeuxzbuAF0b.xml
{"profile":{"key":"AY0biq7vTbeuxzbuAF0b","name":"test-name","language":"java","isDefault":false,"isInherited":false,"languageName":"Java"},"ruleSuccesses":2,"ruleFailures":0}
 
2.3 修改项目的quality profiles
 
POST api/qualityprofiles/remove_projectPOST api/qualityprofiles/add_project

3 如何在代码分析的时候指定quality profiles
 
早的sonar有一个参数 sonar.profile,现在好像没有了。
mvn sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.profile=test-name
 
那我也就不知道该怎么办了。。。先用api改动项目默认的quality profiles,然后执行mvn??