我是新手来实现自定义gradle插件。我想要的是增强另一个插件的属性如果我发现它已经从我的自定义gradle插件中应用了一些额外的值。
例如,我们假设在 Project A 上我应用了名为 customPlugin 的自定义插件。我希望我的customPlugin
检测是否配置了sonarqube
,并且在现有的sonarqube clojure上添加了其他属性之前执行了sonarqume任务,这可能吗?
例如,我在build.gradle
中的某个地方有以下clojuresonarqube {
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'
)导入的,则无法识别,但如果它在同一个文件中,则可以更好地识别
这样做的正确方法是什么?