如何使用自定义gradle插件增强现有配置

时间:2018-03-11 16:11:24

标签: gradle groovy build.gradle gradle-plugin

我是新手来实现自定义gradle插件。我想要的是增强另一个插件的属性如果我发现它已经从我的自定义gradle插件中应用了一些额外的值。

例如,我们假设在 Project A 上我应用了名为 customPlugin 的自定义插件。我希望我的customPlugin检测是否配置了sonarqube,并且在现有的sonarqube clojure上添加了其他属性之前执行了sonarqume任务,这可能吗?

例如,我在build.gradle

中的某个地方有以下clojure
sonarqube {
    properties {
        property "sonar.projectName", "${project.name}"
        property "sonar.projectKey", "${project.group}:${project.name}"
    }
}

我想让我的插件注入属性:

property "sonar.host.url", "http://localhost:3456"

我希望这样做,因为任务sonarqube包含所有属性,包括首字母和我的自定义插件注入的属性

到目前为止,我尝试使用以下方式检测是否应用了插件:

@Override
void apply(Project project) {
  if (project.plugins.hasPlugin(org.sonarqube.gradle.SonarQubePlugin)) {
    // sonarqube is here
  }
}

问题是,如果这是从另一个文件(apply from: 'gradle/sonar.gradle')导入的,则无法识别,但如果它在同一个文件中,则可以更好地识别

这样做的正确方法是什么?

0 个答案:

没有答案