如果应用了 Gradle 插件,我如何有条件地 运行 编码?
How can I conditionally run code if a Gradle plugin is applied?
我有一个我想要的脚本插件:
- 检查是否应用了
ivy-publish
(通过 apply plugin: ivy-publish
):
- 如果应用,声明
publishing { repositories { ivy { } } }
- 如果没有应用,运行一些其他代码
但是,如果应用 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")) {
..
}
我有一个我想要的脚本插件:
- 检查是否应用了
ivy-publish
(通过apply plugin: ivy-publish
): - 如果应用,声明
publishing { repositories { ivy { } } }
- 如果没有应用,运行一些其他代码
但是,如果应用 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")) {
..
}