【问题标题】:What are the version numbers of bulit-in gradle plugins?内置 gradle 插件的版本号是多少?
【发布时间】: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 最佳做法是设置还是保留?

【问题讨论】:

    标签: java gradle


    【解决方案1】:

    Gradle 区分 corecommunity 插件。核心插件内置于 Gradle 发行版中,可以通过其不合格的短名称(“java”与“org.gradle.java”)引用。它们不是从插件门户中检索到的。核心插件不得包含版本约束 (Javadoc Reference)。找到核心插件列表here

    社区插件由插件门户托管和检索。它们必须与版本一起在完全限定的插件 ID 中给出。

    在这些指南中了解有关插件的更多信息:

    如果我运行 gradle wrapper ./gradlew build,来自 gradle 6.0 的 java 插件将被执行。这是真的还是假的?

    是的,因为 Gradle Wrapper 确保构建使用指定的 Gradle 版本运行,并且核心插件与发行版捆绑在一起。

    如果我运行系统 gradlegradle build,来自 gradle 5.0 的 java 插件将被执行。这是对还是错?

    没错。

    这些插件是捆绑到 gradle 发行版本身还是从 gradle 插件门户网站按需下载的?

    捆绑,如前所述。

    是否因为未设置插件版本而将构建视为不可重现(就像在 maven 中一样)?

    只要使用相同的 Gradle 版本,就可以认为构建是可重现的,因为核心插件与发行版捆绑在一起。

    关于插件版本的 gradle 最佳实践应该设置还是保留?

    如前所述,您在这里别无选择。核心插件不能定义一个版本,而社区插件必须是一个版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      • 2020-06-11
      相关资源
      最近更新 更多