内置 gradle 插件的版本号是多少?
Posted
技术标签:
【中文标题】内置 gradle 插件的版本号是多少?【英文标题】:What are the version numbers of bulit-in gradle plugins? 【发布时间】:2020-01-02 17:10:01 【问题描述】:在我的 gradle 构建文件中,我有以下插件块
plugins
`java-library`
jacoco
checkstyle
这些都没有指定版本,但一切正常。
假设一个项目正在使用带有 gradle wrapper 的 gradle 6.0,但系统安装了 gradle 5.0。
问题:
如果我运行 gradle wrapper./gradlew build
来自 gradle 6.0 的 java 插件将被执行。这是真的还是假的?
如果我运行系统 gradle gradle build
来自 gradle 5.0 的 java 插件将被执行。这是真的还是假的?
这些插件是捆绑到 gradle 发行版本身还是从 gradle 插件门户按需下载的?
是否因为未设置插件版本而将构建视为不可重现(就像在 maven 中一样)?
关于插件版本的 gradle 最佳做法是设置还是保留?
【问题讨论】:
【参考方案1】:Gradle 区分 core 和 community 插件。核心插件内置于 Gradle 发行版中,可以通过其不合格的短名称(“java”与“org.gradle.java”)引用。它们不是从插件门户中检索到的。核心插件不得包含版本约束 (Javadoc Reference)。找到核心插件列表here。
社区插件由插件门户托管和检索。它们必须与版本一起在完全限定的插件 ID 中给出。
在这些指南中了解有关插件的更多信息:
Using Gradle Plugins Interface PluginDependenciesSpec如果我运行 gradle wrapper
./gradlew build
,来自 gradle 6.0 的 java 插件将被执行。这是真的还是假的?
是的,因为 Gradle Wrapper 确保构建使用指定的 Gradle 版本运行,并且核心插件与发行版捆绑在一起。
如果我运行系统 gradle
gradle build
,来自 gradle 5.0 的 java 插件将被执行。这是对还是错?
没错。
这些插件是捆绑到 gradle 发行版本身还是从 gradle 插件门户网站按需下载的?
捆绑,如前所述。
是否因为未设置插件版本而将构建视为不可重现(就像在 maven 中一样)?
只要使用相同的 Gradle 版本,就可以认为构建是可重现的,因为核心插件与发行版捆绑在一起。
关于插件版本的 gradle 最佳实践应该设置还是保留?
如前所述,您在这里别无选择。核心插件不能定义一个版本,而社区插件必须是一个版本。
【讨论】:
以上是关于内置 gradle 插件的版本号是多少?的主要内容,如果未能解决你的问题,请参考以下文章
问下support:appcompat v7,v4所对应的sdk版本号是多少?
Android Studio 如何快速改插件与Gradle的版本号
Android Gradle 插件自定义 Gradle 插件模块 ② ( 在模块中定义插件 | 引入自定义 Gradle 插件模块 | 配置 Gradle 插件上传选项 | 配置分组名称版本号 )
Android Gradle 插件Gradle 依赖管理 ⑤ ( dependencies 依赖项拆分 | 依赖组 | 依赖名称 | 依赖版本号 | 动态指定依赖版本号 | 使用命令行查看模块 )