Gradle: 尝试 skp sonarqube 结果出错

Gradle: try to skp sonarqube results in error

我有一个使用 Sonarqube 插件 (org.sonarqube) 的 gradle 脚本。如果我让发布任务依赖它,它工作正常。

问题是 运行 sonarqube 仅当条件为真时。所以我尝试了(如 gradle 文档中所述)所有这三个语句:

sonarqube.enabled (false)
sonarqube.enabled=false
sonarqube.onlyIf { false }

每个都会导致错误,这里是我尝试第一个语句时遇到的错误

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\Eclipse\workspace3.6\at.mic.hermes\build.gradle' line: 208

* What went wrong:
A problem occurred evaluating root project 'at.mic.hermes'.
> Could not find method enabled() for arguments [false] on org.sonarqube.gradle.SonarQubeExtension_Decorated@412196.

为了确保代码中没有拼写错误,我尝试了测试任务中的所有语句,例如

test.enabled(false)

这会导致(如预期的那样)

:test SKIPPED

有什么想法我做错了/必须改变什么吗?提前致谢!

弗兰克

我认为问题出在名称冲突上。有 2 个对象名为 'sonarqube':

  • SonarQube 任务
  • SonarQube 扩展

它似乎并没有破坏你的构建,但是在这里当你写 sonarqube.enabled 它访问扩展(根据你的堆栈跟踪)。

解决方案可能是使用 tasks.sonarqube.enabled 来消除歧义。参见 https://docs.gradle.org/current/userguide/more_about_tasks.html#N11143