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



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

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

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

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

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目录的相关部分,或者再次删除整个目录。

如果这也无济于事,恐怕这将是您的存储库方面的问题。

您可以使用

./gradlew --refresh-dependencies run

以启动应用程序并刷新所有依赖项。

资料来源:https://docs.gradle.org/current/userguide/dynamic_versions.html(通过@Dmitriy皮丘金的上述评论(。

--

refresh-dependencies 选项告诉 Gradle 忽略已解析模块和工件的所有缓存条目。

相关内容