如何在不更改Gradle版本的情况下获取依赖项的最新快照?

j2cgzkjk  于 2023-10-19  发布在  其他
关注(0)|答案(2)|浏览(146)

我构建了一个自己的库,部署在nexus存储库上。此快照经常更改,因此并非每次更改都会获得新版本号。我的问题是,如果不改变使用这个库的项目的版本号,我就得不到最新的代码。我尝试了“--refresh-dependencies”,并尝试通过删除“\caches\modules-2\files-2.1\my.dependency”下的此依赖文件夹,从该高速缓存中清除依赖
我也试过这个:

configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

有没有人知道我如何可以强制等级下载依赖的最新状态,尽管版本号没有改变?

7hiiyaii

7hiiyaii1#

首先确保您的快照具有正确的版本格式:

dependencies {
    compile group: "groupId", name: "artifactId", version: "1.0-SNAPSHOT"
}

如果你没有使用-SNAPSHOT后缀(或者你没有使用Maven仓库),你必须指出你的依赖关系正在改变:

dependencies {
    compile group: "groupId", name: "artifactId", version: "1.0", changing: true
}

然后你必须告诉Gradle不要缓存不断变化的依赖项,否则它只会每24小时更新一次:

configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

如果您还将依赖项配置为动态版本,如下所示:

dependencies {
    compile group: "groupId", name: "artifactId", version: "1+", changing: true
}

然后你必须加上:

configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
    resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds'
}

请注意,这可能会大大降低构建速度。
如果这没有帮助,请删除.gradle目录的相关部分,或者再次删除整个目录。
如果这两个都没有帮助,恐怕这将是您的存储库方面的问题。

mf98qq94

mf98qq942#

您可以使用

./gradlew --refresh-dependencies run

启动应用程序并刷新所有依赖项。
来源:https://docs.gradle.org/current/userguide/dynamic_versions.html(通过@Dmitriy Pichugin上面的评论)。
--refresh-dependencies选项告诉Gradle忽略已解析模块和工件的所有缓存条目。

相关问题