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

How can I conditionally run code if a Gradle plugin is applied?

我有一个我想要的脚本插件:

但是,如果应用 ivy-publish 插件,我不确定如何实际 运行 编码,而且我在 documentation 中找不到任何相关信息。有什么办法吗?

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

If a plugin with the specified ID has already been applied, the supplied action will be executed immediately. Otherwise, the action will executed immediately after a plugin with the specified ID is applied.

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

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

您可以随时使用 findPlugin:

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

或使用:

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