gpt4 book ai didi

gradle - Gradle “changing”依赖项管理

转载 作者:行者123 更新时间:2023-12-03 03:40:16 25 4
gpt4 key购买 nike

我想和你分享我的问题。也许有人也面临这个问题,并将有解决方案。
简而言之,Gradle无法解决频繁变化的依赖关系。
我们正在使用:

./gradlew -v

------------------------------------------------------------
Gradle 2.12
------------------------------------------------------------

Build time: 2016-03-14 08:32:03 UTC
Build number: none
Revision: b29fbb64ad6b068cb3f05f7e40dc670472129bc0

Groovy: 2.4.4
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.8.0_66 (Oracle Corporation 25.66-b17)
OS: Linux 2.6.18-409.el5 amd64

让我尝试解释发生了什么。
我们有一些项目依赖于另一个独立项目。
两者都在积极发展中。
一种是: 字符串分析器版本:1.0.0-SNAPSHOT
第二个是: tools-utils 版本:2.2.0-SNAPSHOT
我们具有内部Maven Artifact ,并在 string-parser 中进行了配置:
# some code there
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, TimeUnit.MILLISECONDS
}

repositories {
mavenLocal()
maven { url 'https://some.internal.com/deploy-snapshot'}
maven { url 'https://some.internal.com/deploy-release'}
}

dependencies {
# Some other dependencies listed here
compile('com.some.group:tools-utils:2.2.0-SNAPSHOT') {
changing = true
}
}

因此,当我们在本地工作站(Windows-我认为这没关系)上进行 tools-utils 的更改并将最后一个快照 Artifact 版本上载到maven本地和远程时,一切正常。我们转到 字符串分析器项目,单击“重新导入”按钮(在 Intellij Idea 2016.1.2 中),并用Gradle开关更改正确的依赖项版本。
但是,如果有人进行了一些更改并将新版本上载到 ,则Maven远程将不会更新缓存中的依赖项,并且仍指向旧版本。为了解决这个问题,我们从Gradle缓存中手动删除了 Artifact ,并从Maven Local中删除了(!)。

您能为我提供一些建议吗,因为手动清除缓存(或在TeamCity上添加步骤)是一场噩梦?

最佳答案

尝试将其放入allprojects

 // forces all changing dependencies (i.e. SNAPSHOTs) to automagicially download
// (thanks, @BillBarnhill!)
configurations.all {
resolutionStrategy {
cacheChangingModulesFor 0, 'seconds'
}
}

Source: Gradle-Fury

关于gradle - Gradle “changing”依赖项管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40678687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com