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

时间:2017-09-13 18:36:19

标签: gradle gradle-plugin

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

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

但是,如果应用了ivy-publish插件,我不确定如何实际运行代码,而我在documentation中找不到任何相关内容。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:4)

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

  

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

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

pluginManager.withPlugin('ivy-publish') {
  // Do configuration
}

答案 1 :(得分:1)

您始终可以使用findPlugin

println project.plugins.findPlugin('ivy-publish')

答案 2 :(得分:0)

或者使用:

if (project.getPluginManager().hasPlugin("ivy-publish")) {
    ..
}