如果应用Gradle插件,如何有条件地运行代码?

Thu*_*rge 5 gradle gradle-plugin

我有一个脚本插件,我想:

  • 检查是否已ivy-publish应用(通过apply plugin: ivy-publish):
  • 如果应用,则声明 publishing { repositories { ivy { } } }
  • 如果未应用,请运行其他代码

但是,我不确定如果应用了该ivy-publish插件如何实际运行代码,并且我在文档中找不到任何相关内容。有什么办法吗?

mko*_*bit 6

您可以使用PluginManager.withPlugin(String id, Action<? super AppliedPlugin> action方法。从Javadoc:

如果已经应用了具有指定ID的插件,则将立即执行提供的操作。否则,将在应用具有指定ID的插件后立即执行该操作。

在构建脚本中,您可以执行以下操作:

pluginManager.withPlugin('ivy-publish') {
  // Do configuration
}
Run Code Online (Sandbox Code Playgroud)


Opa*_*pal 5

您可以随时使用findPlugin

println project.plugins.findPlugin('ivy-publish')
Run Code Online (Sandbox Code Playgroud)