SonarQube 7.7は、Javaプロジェクト分析について次の警告を表示します。
プロパティ 'sonar.jacoco.reportPath'は非推奨です(JaCoCoバイナリ形式)。代わりに「sonar.coverage.jacoco.xmlReportPaths」を使用する必要があります(JaCoCo XML形式)。
Gradleベースのプロジェクトは、sonar-project.properties
を介して次のように構成されます。
sonar.projectKey=MyExampleLib
sonar.projectName=MyExample Library
sonar.sources=src/main/Java
sonar.jacoco.reportPath=build/jacoco/test.exec
sonar.junit.reportsPath=build/test-results/test
sonar.Java.test.binaries=build/classes/test
sonar.Java.binaries=build/classes/Java/main
sonar.binaries=build/classes
sonar.projectVersion=$libVersion
SonarQubeサーバーのURLは次の方法で挿入されます(そうしないと、「localhost:9000」エラーが発生します)。
SonarQube分析は、Jenkinsと JaCoCoプラグイン v.3.0.4を介して次のジョブ構成でトリガーされます。
report.xml
がxmlReportPaths
によってピックアップされると読みました。どうすれば生成できますか?
あなたのビルドはGradleに基づいているようです。 Gradleビルドでjacocoと sonarqube プラグインを使用する方が簡単でしょう
plugins {
id "jacoco"
id "org.sonarqube" version "2.8"
}
あなたは必要ありませんsonar-project.properties
、分析はビルドから構成されます。 sonarqube構成のデフォルト値をカスタマイズできます
// in build.gradle
sonarqube {
properties {
property "sonar.exclusions", "**/*Generated.Java"
}
}
カバレッジを有効にするには、gradleを構成してXMLレポートを生成する必要があります
jacocoTestReport {
reports {
xml.enabled true
}
}
そして、gradle build jacocoTestReport sonarqube
。詳細は here および SonarScanner for Gradle doc にあります
true
にxml.enabled
値を指定し、レポートセクションでdestination path
を指定することにより、XML形式でJacocoレポートを生成できます。
plugins {
id "org.sonarqube" version "2.8"
}
jacocoTestReport {
group = "Reporting"
reports {
xml.enabled true
csv.enabled false
//to create coverage report in html
html.destination file("${buildDir}/reports/coverage")
//for XML
xml.destination file("${buildDir}/reports/jacoco.xml")
}
}
SonarQubeプロパティは、build.gradle
ファイルを使用して構成することもできます。 sonar.jacoco.reportPath
およびsonar.jacoco.reportPaths
は、ソナーバージョン7.7から廃止されたプロパティであるため、sonar.coverage.jacoco.xmlReportPaths
に置き換える必要があります。
build.gradle
によるSonarqubeプロパティの構成sonarqube {
properties {
property 'sonar.projectName', 'MyExample Library'
property 'sonar.projectKey', 'MyExampleLib'
property 'sonar.core.codeCoveragePlugin', 'jacoco'
property 'sonar.coverage.jacoco.xmlReportPaths', '${project.buildDir}/reports/jacoco.xml'
}
}
sonar-project.properties
を使用してこれを行う場合は、下記の非推奨のプロパティを推奨のプロパティに更新してください。sonar.jacoco.reportPath=build/reports/jacoco.xml
最後に、gradle jacocoTestReport sonarqube
コマンドを実行すると、${project.buildDir}/reports/jacoco.xml
や${project.buildDir}/jacoco/test.exec
などのjacocoテストレポートファイルがSonarQube用に生成されます。