Sonarqube扫描具有多个模块的Gradle

时间:2019-11-15 06:53:16

标签: jenkins sonarqube sonarqube-scan gradlew

我要做什么: 通过Jenkins管道扫描Gradle多模块项目。这是我用于扫描的Jenkinsfile代码:

Stage("Sonar") {
    stagePrint(STAGE_NAME)
    current_stage=STAGE_NAME
    if (RUN_SONAR == false) {
        return
    }               
    sh """
        rm /users/something/.gradle/caches/5.4.1/fileHashes/fileHashes.lock || true
        rm /users/something/.gradle/caches/journal-1/journal-1.lock || true
        ./gradlew ${PROXY_GRADLE_OPTS} --no-daemon sonarqube 
    """
    withSonarQubeEnv() {
        sh "./gradlew ${PROXY_GRADLE_OPTS} --no-daemon sonarqube"}
    sleep(15)
    timeout(time: 1, unit: 'HOURS') { /
        def qg = waitForQualityGate() 
        if (qg.status != 'OK') {
        error "Pipeline aborted due to quality gate failure: ${qg.status}"
        }
    }
} // End Sonar Stage

发生的事情是该进程扫描了所有4个模块,但是waitForQualityGate()仅获得其中一次扫描的结果(请参阅日志)

  

警告:在工作区中找到多个“ report-task.txt”。服用   第一个。   /var/tmp/somecompeny/workspace/miniapp-android-sdk/app/build/sonar/report-task.txt   /var/tmp/somecompeny/workspace/miniapp-android-sdk/common/build/sonar/report-task.txt   /var/tmp/somecompeny/workspace/miniapp-android-sdk/host/build/sonar/report-task.txt   /var/tmp/somecompeny/workspace/miniapp-android-sdk/remote/build/sonar/report-task.txt   [管道] // withSonarQubeEnv [管道]睡眠睡眠15秒   [管道]超时设置为在1小时0分钟后到期[管道] {   [管道] waitForQualityGate检查SonarQube任务的状态   服务器“ ATTSonarQube” SonarQube任务上的“ AW5kx-_DIFBOU4d86ZSQ”   “ AW5kx-_DIFBOU4d86ZSQ”状态为“成功” SonarQube任务   “ AW5kx-_DIFBOU4d86ZSQ”已完成。质量门为“确定”

我如何指导扫描仪,以便知道它应该接走所有被扫描的4个模块?

预先感谢

我使用的版本: Sonarqube版本6.7.6(内部版本38781) 用于Jenkins的SonarQube扫描仪v2.8.1

0 个答案:

没有答案