如何从 gradle 插件读取 gradle 声纳运行器属性?

How can I read the gradle sonar runner properties from a gradle plugin?

我正在编写一个自定义 Gradle 插件,它应用 Gradle sonar runner 插件并默认一些参数。我想编写一个测试来确认属性设置是否正确,但我无法弄清楚设置后如何访问数据。

我尝试了 project.getExtensions().sonarRunner.sonarProperties.getProperties() 和一些变体,但这要么抛出一个空指针,要么 returns 除了声纳属性之外的东西。

是否可以在设置后读取声纳属性?怎么样?

对于我们自己的测试,我们使用 "secret" 属性 将所有 SQ 属性转储到文件中,以便您可以在其上编写断言。

-DsonarRunner.dumpToFile=out.properties

例如,查看我如何为新的 Gradle SonarQube 插件编写集成测试: https://github.com/SonarCommunity/sonar-gradle/blob/master/integrationTests/src/test/java/org/sonarqube/gradle/GradleTest.java#L22

这对我有用,只记得用引号传入 属性 键:

project.tasks.sonarRunner.sonarProperties.get("sonar.host.url")