gpt4 book ai didi

gradle - 如何使用新的 Gradle 插件机制将插件应用到所有项目?

转载 作者:行者123 更新时间:2023-12-03 07:18:34 27 4
gpt4 key购买 nike

在 Gradle 2.1 之前,我可以使用 allProjects 闭包将插件应用到所有项目(当然,通过预先解析 jar):

buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1"
}
}

allprojects {
apply plugin: "com.jfrog.artifactory"
}

使用新的发布机制,plugins 闭包似乎无法在 allprojects 中使用:

allprojects {

plugins {
id "com.jfrog.artifactory" version "3.0.1"
}
}

失败:

“在根项目上找不到参数 [build_xxxx_run_closure1_closure4@yyyyy] 的方法插件()”

使用plugins闭包的规则是什么?该插件仅适用于当前项目吗?如果是这样,我怎样才能将它应用到所有项目而不在每个构建中重复 plugins 闭包?

最佳答案

新的 plugins {...} 语法不能在 allprojects {...}subprojects {...} 中使用> 关闭。此外,它只能在构建脚本中使用(无脚本插件、初始化脚本等)。如果您想避免将插件单独应用于每个项目,我建议使用旧的表示法。 Gradle 团队已经意识到这个问题,并将在未来版本中引入解决方案。

更新:从 Gradle 3.0 开始,您可以通过稍微修改的方式来执行此操作。您仍然必须显式地使用 apply() 但您不再需要处理所有 buildscript { } 废话来将插件放在类路径上。这还允许您有条件地应用插件。查看 Gradle 3.0 release notes了解更多信息。

plugins {
id 'my.special.plugin' version '1.0' apply false
}

allprojects {
apply plugin: 'java'
apply plugin: 'my.special.plugin'
}

关于gradle - 如何使用新的 Gradle 插件机制将插件应用到所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26236308/

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