Gradle / 自定义源集的 SonarQube 文档问题
Gradle / SonarQube documentation issue with custom source sets
我要解决的具体问题是集成测试没有出现在服务器上。
这里给出的示例代码似乎也是错误的:
SonarQube: Analyzing Custom Source Sets
特别是这个代码示例:
sonarqube {
properties {
properties["sonar.sources"] += sourceSets.custom.allSource.srcDirs
properties["sonar.tests"] += sourceSets.integTest.allSource.srcDirs
}
}
运行 这导致:
Invalid value of sonar.tests for...
这实际上应该是什么?根据我正在阅读的另一个论坛,这应该是一个逗号分隔目录列表。所以我尝试了:
sonarqube {
properties {
properties["sonar.tests"] += sourceSets.integrationTest
.allSource.srcDirs.join(",")
}
}
...同样的错误。请注意 ingegrationTest
对于我们的构建是正确的。
以下代码有效:
sonarqube {
properties {
properties["sonar.tests"] += sourceSets.integrationTest.allSource.srcDirs.findAll({it.exists()})
if (file("$project.buildDir/jacoco/test.exec").exists())
property "sonar.jacoco.reportPath", "$project.buildDir/jacoco/test.exec"
if (file("$project.buildDir/jacoco/integrationTest.exec").exists())
property "sonar.jacoco.itReportPath", "$project.buildDir/jacoco/integrationTest.exec"
}
}
我将它导入到每个需要它的项目中以避免使用子项目。根据 Gradle 文档,使用 subProjects 和/或 allProjects 会导致耦合,从而对并行性产生负面影响。 IDK 如果进口更好,但我希望如此。
我要解决的具体问题是集成测试没有出现在服务器上。
这里给出的示例代码似乎也是错误的: SonarQube: Analyzing Custom Source Sets
特别是这个代码示例:
sonarqube {
properties {
properties["sonar.sources"] += sourceSets.custom.allSource.srcDirs
properties["sonar.tests"] += sourceSets.integTest.allSource.srcDirs
}
}
运行 这导致:
Invalid value of sonar.tests for...
这实际上应该是什么?根据我正在阅读的另一个论坛,这应该是一个逗号分隔目录列表。所以我尝试了:
sonarqube {
properties {
properties["sonar.tests"] += sourceSets.integrationTest
.allSource.srcDirs.join(",")
}
}
...同样的错误。请注意 ingegrationTest
对于我们的构建是正确的。
以下代码有效:
sonarqube {
properties {
properties["sonar.tests"] += sourceSets.integrationTest.allSource.srcDirs.findAll({it.exists()})
if (file("$project.buildDir/jacoco/test.exec").exists())
property "sonar.jacoco.reportPath", "$project.buildDir/jacoco/test.exec"
if (file("$project.buildDir/jacoco/integrationTest.exec").exists())
property "sonar.jacoco.itReportPath", "$project.buildDir/jacoco/integrationTest.exec"
}
}
我将它导入到每个需要它的项目中以避免使用子项目。根据 Gradle 文档,使用 subProjects 和/或 allProjects 会导致耦合,从而对并行性产生负面影响。 IDK 如果进口更好,但我希望如此。