首页 > 解决方案 > Gradle 依赖项无法更新时遇到问题

问题描述

我有一个项目,其中包含跨多个存储库共享的 3 个通用 jar。我正在使用 Intellij 2019.4。在我的 gradle 构建中,我包含了以下方法:

dependencyManagement {
    resolutionStrategy {
        // don't cache SNAPSHOT modules; always retrieve them from the maven cache
        cacheChangingModulesFor 0, 'seconds'
    }
}

这应该告诉 Gradle 不要缓存快照,但我的仍在缓存中。我构建并安装了一个常见的 jar,maven repo 有它,但 Gradle 缓存仍然有一个 24 小时前的 jar。我应该使用其他方法吗?我希望 Gradle 始终使用 .m2 存储库中的内容。

标签: gradlebuild.gradle

解决方案


Gradle 只会在声明的存储库中搜索模块。

这意味着,如果您需要SNAPSHOT或不需要来自本地 Maven 存储库的库,则需要在 Gradle 中将其声明为存储库。

repositories {
    mavenLocal() {
        content {
            includeModule("my.org", "someLib")
        }
    }
    // other repositories
}

但是,添加到存储库时有一些注意事项mavenLocal(),因此请确保使用存储库内容过滤仅在本地 Maven 存储库中搜索这些SNAPSHOT依赖项,如上所示。


推荐阅读