如果文件不相等,gradle不会更新依赖项

时间:2016-12-09 12:38:22

标签: java gradle groovy dependencies repository

目前我正在调查gradle 2.1中testRuntime依赖项出现的问题。 问题是,如果我将一些文件放到存储库并将其作为依赖项添加到项目下载,并且工作正常但是如果我正在更改此文件,因为发现它在我第一次上传时无效,它就不会不要在项目中更新,我应该删除它并再次下载。 如果我将任何具有相同名称的文件放在同一个工作中,它就不会更新。

如果在我的存储库中更改了文件,那么是否可以更新本地文件?

仅供参考: - refresh-dependencies没有帮助。

1 个答案:

答案 0 :(得分:0)

这里有两个变体,用于将依赖项声明为更改。更改意味着工件可以在存储库中更改而不会更改版本号。如果您的版本号以-SNAPSHOT结尾,则会自动将其定义为更改,因为这是Maven的默认行为。默认情况下,Gradle会缓存更改依赖关系的工件24小时,但此持续时间是可配置的。

dependencies {
    testRuntime('org.hibernate:hibernate:3.0.5') {
        changing = true
    }
    testRuntime group: 'org.hibernate', name: 'hibernate', version: '3.0.5', changing: true
}

使用--refresh-dependencies不起作用,因为它只会告诉gradle再次查看存储库,例如: G。如果在回购中没有找到依赖但现在存在,Gradle仍然记得它没有找到。它可能会重新获得一个更改模块的依赖项,但我不确定这一点。

一旦Gradle在未定义为更改模块的repo中找到了依赖项的工件,如果它不是更改模块,它将不再查看repo的repo,因为不更改模块不应该更改版本更改。因此,您必须删除Gradle缓存,以便在工件更改时重新获取工件,而不会将其定义为更改。