如何强制更新intellij中的所有快照Gradle依赖项

Vad*_*imo 47 intellij-idea gradle intellij-14

我有一个带有一些SNAPSHOT依赖项的项目,它使用gradle作为intellij中的构建工具.

问题是intellij正在使用现已过时的SNAPSHOTS. 在此输入图像描述

当我在命令行上构建项目时

gradle build or 
gradle clean build --refresh-dependencies
Run Code Online (Sandbox Code Playgroud)

在命令行上,将获取最新的依赖项.我还设置了我的成绩文件,以便始终根据此答案下载快照依赖项.

如何强制intellij下载所有依赖项?

Ell*_*gas 49

在IntelliJ 2017.2中,您可以在Gradle Tool窗口中右键单击项目名称,然后从上下文菜单中选择Refresh dependencies.

在IntelliJ 2017.2中刷新Gradle依赖项

这将刷新所有依赖项,而不仅仅是SNAPSHOTS,因此可能需要一段时间.我不知道其他版本的IntelliJ是否也有此功能.

  • 这有效,但速度很慢.有谁知道如何优化只获得最新的SNAPSHOTS? (3认同)

cjs*_*hno 34

我遇到了一些非常棘手的快照.您可以尝试以下几种方法:

  • 在Gradle选项卡(UI的右侧)上,单击蓝色圆圈箭头图标,该图标应刷新依赖项(在大多数情况下有效)
  • 如果这不起作用,请尝试使用绿色"运行Gradle命令"图标 IntelliJ中运行gradle命令- 这将在IntelliJs环境中运行命令而不是本地计算机的命令.
  • 如果这两个都失败了,您可以将Gradle resolutionStrategy设置修改为: configurations.all { resolutionStrategy.cacheDynamicVersionsFor 4, 'hours' resolutionStrategy.cacheChangingModulesFor 4, 'hours' } 此配置更改是最后一个选项,应该谨慎使用.它基本上告诉Gradle更频繁地刷新本地缓存.进行这些更改后,应单击IntelliJ Gradle刷新按钮.


kup*_*fic 18

另一种选择是打开项目结构,在项目设置,库下,找到列表中的依赖项并将其删除.然后按Gradle刷新蓝色圆圈箭头图标,IntelliJ应该获取最新版本.

在此输入图像描述

在此输入图像描述

  • 在尝试了其他答案之后,这是唯一对我有用的解决方案(也许需要在--refresh-dependencies解决方案之后进行)。 (3认同)

小智 9

IntelliJ IDEA 终极版 2020.1

在 Gradle 工具窗口中右键单击项目名称,然后从上下文菜单中选择Refresh Gradle Dependencies

在此处输入图片说明


Ang*_*i H 5

编辑

在 Gradle 6+ 上,快照是changing默认的。所以,不需要再设置changing = true了。


上一个答案:

Gradle 默认将更改的模块缓存 24 小时。我们可以通过将依赖项标记为“正在更改”来告诉 Gradle 刷新或重新下载构建脚本中的依赖项。

按着这些次序:

第 1 步:通过将cacheChangingModulesFor属性的值设置为 0 秒来告诉 Gradle 不要缓存正在更改的模块:

configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
Run Code Online (Sandbox Code Playgroud)

第 2 步:将需要刷新或重新下载的依赖项标记为正在更改的模块:

dependencies {
    implementation("com.howtoprogram.buysell:payment-api:0.0.1-SNAPSHOT") {
        changing = true
    }
}
Run Code Online (Sandbox Code Playgroud)

来源:刷新或重新下载 Gradle 中的依赖项