在我们公司,我们编写了自定义 gradle 插件,当应用程序插件存在时,它会做一些事情。但是当我们的插件之后在 build.gradle 中包含应用程序插件时,我们的插件不会发现应用程序插件并且不会执行操作。
gradle 中是否有任何方法可以强制执行插件应用顺序?还是有其他解决办法?
我们插件的一小段摘录:
void apply(Project project) {
if (project.plugins.hasPlugin(ApplicationPlugin) {
//some stuff, doesn't work if "application" appears after this plugin
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
根据Gradle 论坛上的这个帖子,withType(Class)并被withId(String)懒惰地评估,并且仅在应用引用的插件时应用。
void apply(Project project) {
project.plugins.withType(ApplicationPlugin) {
//some stuff, doesn't work if "application" appears after this plugin
}
}
Run Code Online (Sandbox Code Playgroud)
Ati*_*gur -1
为什么不使用插件依赖项。您的自定义 gradle 插件应该依赖于 ApplicationPlugin。
请参阅 GroovyPlugin 中的以下代码,该代码依赖于 JavaPlugin。
public void apply(Project project) {
project.getPlugins().apply(GroovyBasePlugin.class);
project.getPlugins().apply(JavaPlugin.class);
project.getConfigurations().getByName(COMPILE_CONFIGURATION_NAME).extendsFrom(
project.getConfigurations().getByName(GroovyBasePlugin.GROOVY_CONFIGURATION_NAME)
);
configureGroovydoc(project);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2094 次 |
| 最近记录: |