多模塊Gradle項目配置SonarQube

1. 配置build.gradle

buildscript{

    repositories {
        maven {url "https://plugins.gradle.org/m2/"}
    }
    dependencies {
        classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6")
    }

}

apply plugin: "org.sonarqube"

sonarqube {
    properties {
        property "sonar.sourceEncoding", "UTF-8"
    }
}

subprojects {

    apply plugin: 'java'
    apply plugin: 'eclipse'
    apply plugin: 'idea'

    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    // 編碼改爲 UTF-8
    [compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'

    repositories {
        mavenCentral()
        jcenter()
    }

    dependencies {
        //maven倉庫中心沒有的jar,則放入libs目錄下
        compile fileTree(dir: 'libs', include: ['*.jar'])

        // 通用依賴
        compile("org.springframework:spring-aop:${springVersion}")

        // 測試依賴
        testCompile 'junit:junit:4.12'

    }

    sourceSets {
        main {
            java.srcDir('src/main/java')
            resources.srcDir('src/main/resources')
        }
        test {
            java.srcDir('src/test/java')
            resources.srcDir('src/test/resources')
        }
    }

}

2. Build Sync

對引入的SonarQube進行可執行分析,可執行狀態如下圖所示:

若build.gradle配置有誤,則執行結果如下圖所示:

 

 

 

 

 

 

 

3. 多模塊的SonarQube配置

    1. 共享配置設置

subprojects {
    sonarqube {
        properties {
            property "sonar.sources", "src"
        }
    }
}

    共享配置設置可以在subprojects 中進行聲明

    2.  個別模塊配置

    個別模塊的特殊配置聲明在模塊內部的build.gradle中,具體配置如下:

project(":project1") {
    sonarqube {
        properties {
            property "sonar.branch", "Foo"
        }
    }
}

    3. 分析時跳過特定的模塊

    多模塊的項目中,如果想忽略某模塊,即不分析某模塊,可在特定模塊內的build.gradle中進行如下配置:

project(":project2") {
    sonarqube {
        skipProject = true
    }
}

4. 執行SonarQube分析

    1. 執行命令

gradle sonarqube --info

    2. 執行結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章