如何正确从VCS中删除gradle包装器?

问题描述 投票:0回答:1

我不想将 gradle 包装器提交到 VCS1。 哪些 gradle 文件可以被 git 忽略,以便其他用户在设置环境时遇到的麻烦最少?我特别想知道

gradle/wrapper/gradle-wrapper.properties
可能有用也可能没用,因为它似乎保存了发行版及其版本的 URL。

这是我当前的 gitignore:

/gradlew
/gradlew.bat
/gradle/wrapper/*
!/gradle/wrapper/gradle-wrapper.properties # not sure about this

看起来合适吗?

¹ 为什么?

(不相关,但我预计答案不是重点,我不打算谈判)

尽管 Gradle 团队自己推荐,但将包装器提交到 VCS 听起来是一个非常糟糕的主意:

  • 二进制文件可以隐藏恶意软件(xzorcist/CVE-2024-3094 漏洞使用存档来隐藏其有效负载)
  • 这个文件占用了不可回收的空间,而它只能从其他地方下载,就像所有其他项目依赖项或 JDK 本身一样
  • 它并不比其他包管理器使用其
    package-lock.json
    Cargo.lock
    (下载 URL + 校验和)使构建更具可重复性,我不明白 Gradle 团队的这个论点
  • JDK对于开发Java项目也至关重要,但我们不会将其推送到VCS。 gradle 依赖项本身也是如此,大多数人不提供它们,这是有充分理由的。
java gradle gradle-wrapper
1个回答
0
投票

如果您在 build.gradle 中指定了所需的版本,则无需保留 gradle.properties 文件,例如:

// build.gradle.kts

tasks.wrapper {
    gradleVersion = "7.6"
    distributionType = Wrapper.DistributionType.ALL
}

所以当你/队友调用

gradle wrapper
时,将会生成指定版本的gradle.properties。

参考:https://docs.gradle.org/current/userguide/gradle_wrapper.html

© www.soinside.com 2019 - 2024. All rights reserved.