Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Intellij idea 如何强制更新intellij中的所有快照渐变依赖项_Intellij Idea_Gradle_Intellij 14 - Fatal编程技术网

Intellij idea 如何强制更新intellij中的所有快照渐变依赖项

Intellij idea 如何强制更新intellij中的所有快照渐变依赖项,intellij-idea,gradle,intellij-14,Intellij Idea,Gradle,Intellij 14,我有一个在intellij中使用gradle作为构建工具的快照依赖项目 问题是intellij使用的快照现在已经过时。 当我在命令行上构建项目时 gradle build or gradle clean build --refresh-dependencies 在命令行上获取最新的依赖项。我还将grade文件设置为始终下载快照依赖项 如何强制intellij下载所有依赖项?我遇到了一些非常棘手的快照。您可以尝试以下几个选项: 在UI右侧的Gradle选项卡上,单击蓝色圆圈箭头图标,在大多数

我有一个在intellij中使用gradle作为构建工具的快照依赖项目

问题是intellij使用的快照现在已经过时。

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

gradle build or 
gradle clean build --refresh-dependencies
在命令行上获取最新的依赖项。我还将grade文件设置为始终下载快照依赖项


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

我遇到了一些非常棘手的快照。您可以尝试以下几个选项:

在UI右侧的Gradle选项卡上,单击蓝色圆圈箭头图标,在大多数情况下,该图标会刷新依赖项 如果这不起作用,请尝试使用绿色的run gradle命令图标在IntelliJ中运行gradle命令-这将在IntelliJs环境中运行命令,而不是在本地计算机上运行。 如果这两项都失败,您可以将渐变分辨率策略设置修改为以下内容: 配置。全部{ resolutionStrategy.CacheDynamicVersions持续4小时 resolutionStrategy.CacheChangingModules持续4小时 } 此配置更改是最后的选择,应谨慎使用。它基本上告诉Gradle更频繁地刷新本地缓存。进行这些更改后,应单击IntelliJ Gradle刷新按钮。
另一个选项是打开项目结构,在“项目设置”的“库”下,在列表中找到依赖项并将其删除。然后按Gradle刷新蓝色圆圈箭头图标,IntelliJ将获取最新版本


在IntelliJ 2017.2中,您可以在 渐变工具窗口,并从关联菜单中选择刷新依赖项


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

默认情况下,Gradle会将更改的模块缓存24小时。我们可以告诉Gradle刷新或重新下载构建脚本中的依赖项,方法是将这些依赖项标记为“正在更改”

遵循以下步骤:

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

configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
步骤2:将需要刷新或重新下载的依赖项标记为更改模块:

dependencies {
    compile("com.howtoprogram.buysell:payment-api:0.0.1-SNAPSHOT") {
        changing = true
    }
}
资料来源:IntelliJ IDEA ULTIMATE 2020.1

在“渐变工具”窗口中右键单击项目名称,然后从关联菜单中选择“刷新渐变依赖项”


确保IntelliJ添加所有依赖项的最简单方法是使项目缓存无效并重新启动。重新加载项目大约需要一分钟

智能化

File -> Invalidate Caches/Restart...
现在,为了确保使用最新的快照,您必须指定正在gradle.build文件中使用的依赖项的版本

通常,大多数存储库中都没有“最新”的锚版本。你只需看看最新的版本是什么

理论上,如果您知道发布日期和版本控制系统,您可以编写一个Groovy函数,返回依赖项URL并将其传递给实现

def getLatestVersion(){
 ...build version string
return version //As string
}

implementation getLatestVersion()

但是,即使您引用CI/CD管道,也不建议这样做,以防在Intellij的Gradle选项卡上发生超出您控制范围的任何更改

,顶部有一个绿色图标,允许您在IDE中执行Gradle命令。啊,我明白了您的意思,然后呢?gradle clean build-refresh dependencies?这可以工作,但速度非常慢。有人知道如何优化以仅获取最新快照吗?如果您正在上载快照,则在快速修复的情况下追加提交编号。。。1.0.0-SNAPSHOT-1这是唯一对我有效的解决方案,在尝试了其他答案后,可能需要在-refresh dependencies解决方案之后执行。该属性在kts dialiect中称为isChanging on 6.8.x。但似乎是一件事。如果他们为快照构建自动执行此操作,那就太好了。