我要做什么: 通过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