Git 防止gradle-wrapper.properties随时更改

Git 防止gradle-wrapper.properties随时更改,git,intellij-idea,gradle,Git,Intellij Idea,Gradle,我们在所有项目中都使用了,但我们的一个工具(IntelliJ IDEA)经常重新运行包装器任务,这会在每次运行时更改第一行(关于文件生成时间的注释)。此更改倾向于添加到拉请求中,这意味着存在不必要的合并冲突的高可能性 正确的解决方案是让所有开发人员永远不要签入该文件,除非它确实以一种有意义的方式进行了更改,但是开发人员(包括我)可能会草率和健忘,因此该文件会定期出现在pull请求中 我有一些想法可以解决这个问题,但我真的无法决定其中任何一个 让Git忽略gradle-wrapper.proper

我们在所有项目中都使用了,但我们的一个工具(IntelliJ IDEA)经常重新运行包装器任务,这会在每次运行时更改第一行(关于文件生成时间的注释)。此更改倾向于添加到拉请求中,这意味着存在不必要的合并冲突的高可能性

正确的解决方案是让所有开发人员永远不要签入该文件,除非它确实以一种有意义的方式进行了更改,但是开发人员(包括我)可能会草率和健忘,因此该文件会定期出现在pull请求中

我有一些想法可以解决这个问题,但我真的无法决定其中任何一个

  • 让Git忽略gradle-wrapper.properties的第一行,因为它是本地的,所以感觉很麻烦,必须由每个开发人员来完成

  • 在gradle-wrapper任务中添加一个尾部,删除gradle-wrapper.properties的第一行,感觉有点粗糙

  • 不知何故,使IDEA不会在每次同步项目时自动重新运行包装器任务,也不知道如何做到这一点


  • 我倾向于2。现在,我想听听是否还有其他人有更好的想法。

    在导入可升级项目时,选择使用默认的可升级包装器是正确的选择,并且使用可自定义的可升级包装器(脚本中的可升级包装器自定义,适用于可升级1.7或更高版本)是导致IDEA始终重新运行包装器任务的选项。

    您多久运行一次Gradle包装器任务,为什么?仅当您想要更新提供的Gradle安装的版本时,才需要运行它。我从未见过IntelliJ在没有显式运行包装器任务的情况下执行此操作。IDEA在同步项目之前运行包装器任务,我们每次更新或添加依赖项时都必须执行此任务(这经常发生,因为我们使用内部库共享数据模型和一些实用程序代码)。IDEA被配置为在我们将项目导入为Gradle项目时使用包装器。我想知道这是否是您第一次打开项目时的设置-当我第一次打开Gradle项目时,我使用文件>打开,然后接受默认值-可能您正在更改其中一个。我将不得不打开一个新的项目,看看有什么选择。所描述的不是一般的默认行为。我使用Git+Gradle+Intellij,但从未遇到过这种情况。这种情况仍然有效吗?我无法通过在导入时仅选择默认的Gradle包装来解决此问题。Intellij每次运行gradle-wrapper.properties时都会更新gradle-wrapper.properties中的时间,即使选择了默认包装。在IDEA 2016中,我仍然这样做。3好的,很高兴知道,谢谢/gradlew包装器还生成日期,因此这可能是一个gradle问题。我会继续调查。
    /gradlew wrapper
    应该会更新日期,因为它正在重新生成文件。您应该运行
    /gradlew wrapper
    的唯一时间是更新了包装的版本。我的问题是每次我刷新项目时,IDEA都会运行
    /gradlew wrapper