gpt4 book ai didi

android - 是否可以从一个插件访问其他插件并在 gradle 中更改它们的值?

转载 作者:行者123 更新时间:2023-11-29 01:16:20 30 4
gpt4 key购买 nike

我想为 Android 应用程序使用构建脚本。所以我在我的 build.gradle 文件中使用了“apply plugin: 'com.android.application'”。然后我可以使用类似的东西:

android{ <somestuff> }

当然还有依赖项和存储库。从这里开始,它就像一个魅力。但我想多次使用它,所以我决定将它放在一个额外的脚本中并完成“申请自:''”。这项工作也是如此。现在我打算写一个插件来做这些事情,但它没有用。我无法告诉我的插件访问 android{} 对象。现在我的问题是:是否可以从其他插件访问对象。 (myPlugin 必须访问 com.android.application-Plugin)或者:我如何编写一个插件,它只是在 build.gradle 中添加我的脚本的值。我尝试了很多东西,但没有任何效果。希望有解决办法!

最佳答案

要获取插件,您可以使用project.plugins.findPlugin() .您可以使用名称或 Java 类作为参数。

这将为您提供插件。现在不要指望它会起作用:

def android = project.plugins.findPlugin('android')

因为android{ <somestuff> }意思是“找到某人注册的扩展 android 并对其应用闭包。因此配置插件的正确方法是访问它注册的扩展:

def android = def eclipse = project.extensions.findByName('android')
// You can also use project.extensions.findByType() if you know the Java class

android{ <somestuff will now work> }

您可能还想确保只有在应用插件时才会发生这种情况:

project.plugins.withId('android') { plugin ->
def android = def eclipse = project.extensions.findByName('android')
android{ <somestuff will now work> }
}

withId在应用插件之前不会做任何事情。如果已经应用,它将立即执行操作。

关于android - 是否可以从一个插件访问其他插件并在 gradle 中更改它们的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39337248/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com