Java:gradle-wrapper.jar什么时候改变?

Jos*_*sie 4 java git gradle

我试图了解 git 版本控制中的 gradle-wrapper.jar 。我在这个问题Purpose of gradlewrapper.jar in mylibraries上找到了它的目的。

由于二进制文件如果变化很大,则不适合存储在 git 中,因此我认为 gradle-wrapper.jar 不会经常变化,这是正确的吗?

这也让我想到了一个问题:它什么时候会改变,为什么,是在我们更新 gradle 版本的时候?

Joa*_*uer 6

简短的回答:您永远不需要升级 Gradle 包装器,除非您需要包装器本身的特定错误修复或功能(这是相当罕见的)。

\n

更长的答案:从某种意义上说,Gradle 包装器非常稳定。

\n

这并不意味着没有发布新版本。事实上,Gradle 包装器随每个 Gradle 版本一起发布。

\n

但古老的 Gradle 包装器通常不是问题,甚至在文档中明确提到了这一点:

\n
\n

请注意,运行包装器任务一次gradle-wrapper.properties只会更新,但包装器本身保持gradle-wrapper.jar不变。这通常没问题,因为新版本的 Gradle 甚至可以使用古老的包装文件运行。如果您仍然希望所有包装器文件完全是最新的,则\xe2\x80\x99 将需要再次运行包装器任务。

\n
\n

这意味着 Gradle 包装器几乎普遍向前向后兼容(您可以使用给定包装器下载较新或较旧的 Gradle 版本)。

\n

您必须升级包装器的唯一情况是包装器中存在错误修复或您绝对必须拥有的功能。

\n

例如,Gradle 6.0 版本对 Gradle 包装器进行了 2 处更改:

\n
    \n
  • 包装器以百分比形式报告下载进度
  • \n
  • Wrapper 尝试从无效的 Gradle 安装中恢复
  • \n
\n

因此,如果您确实想要进度更新或者您经常遇到无效的 Gradle 安装,那么您可能需要将 Gradle Wrapper 升级到该版本以上。

\n

但很多时候,项目可以进行很多很多 Gradle 升级周期,而无需触及gradle-wrapper.jar.

\n

当然,这是设计使然。Gradle 设计者知道,在 VCS(尤其是 git)中存储频繁更改的二进制文件不是一个好主意,因此他们将包装器设计为尽可能稳定,使其基本上只是真正 Gradle 的简单下载器/启动器代码。

\n