我正在使用 Jacoco v0.8.4 和 Sonarcube v2.7.1。
I am using the following configuration for SonarCube.
property "sonar.sources", "src/main/java"
property "sonar.binaries","build/intermediates/javac,app/build/tmp/kotlin-classes"
property "sonar.java.binaries", "build/intermediates/javac,app/build/tmp/kotlin-classes"
property "sonar.tests", "src/test/java" // where the tests are located
property "sonar.java.test.binaries", "build/intermediates/javac,app/build/tmp/kotlin-classes"
property "sonar.jacoco.reportPath", "build/jacoco/testDevDebugUnitTest.exec"
property "sonar.java.coveragePlugin", "jacoco"
property "sonar.android.lint.report", "build/reports/lint results.xml"
SonarCube 分析失败,原因是 sonar.java.binaries
的值无效> 没有文件或目录匹配 'app/build/tmp/kotlin-classes'
但是'app/build/tmp/kotlin-classes' 存在于我的项目文件夹中。
但是,如果我从属性中删除 kotlin
东西,那么它会成功地覆盖 Java 文件。
我对 Kotlin 的覆盖有什么不妥吗?
最佳答案
你还需要在下面的路径中添加你构建的变体文件夹
property "sonar.java.test.binaries", "build/intermediates/classes/test/, app/build/tmp/kotlin-classes/<BuildVariant>UnitTest"
property "sonar.java.binaries", "build/intermediates/classes/<BuildVariant>/, app/build/tmp/kotlin-classes/<BuildVariant>/"
property "sonar.binaries", "build/intermediates/classes/<BuildVariant>/, app/build/tmp/kotlin-classes/<BuildVariant>/"
还有一件事尽量避免使用带有空格的文件名,例如 lint results.xml
关于java - SonarQube 和 Jacoco 无法识别 kotlin-classes 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57251039/