我如何告诉gradle从存储库中重新下载依赖项?
当前回答
以上的解决方案对我都不起作用。
如果你使用IntelliJ,解决这个问题的方法就是简单地刷新所有Gradle项目:
其他回答
你可以告诉Gradle重新下载构建脚本中的依赖项,方法是将依赖项标记为“正在更改”。Gradle将每24小时检查一次更新,但是这可以使用resoltionstrategy DSL进行配置。我发现在SNAPSHOT或NIGHTLY构建中使用它很有用。
configurations.all {
// Check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
扩展:
dependencies {
implementation group: "group", name: "projectA", version: "1.1-SNAPSHOT", changing: true
}
压缩:
implementation('group:projectA:1.1-SNAPSHOT') { changing = true }
我在这个论坛找到了这个解决方案。
对于gradle 6.3版本,kotlin 1.3.70版本,Groovy 2.5.10版本,似乎更改更改为isChange
工作配置为
implementation("com.sample:commons:1.0.0-SNAPSHOT") {
isChanging = true
}
此外,运行此命令获取最新的
./gradlew assemble --refresh-dependencies
可以删除缓存jar的文件夹。
在我的例子中,在Mac上,库被缓存在路径:
/ /用户/ MY_NAME / .gradle /缓存模块2 - 2.1 / cached-library-to-remove /文件
我删除了缓存的库文件夹(在上面的例子中是“cache -library-to-remove”),删除了我的项目的构建文件夹,并重新编译。 然后下载了新库。
有两种方法:
使用命令行选项刷新依赖项现金。 您可以删除本地缓存,其中artefast是由Gradle和触发构建缓存
使用——refresh-dependencies选项:
./gradlew build --refresh-dependencies
简单解释——refresh-dependencies选项告诉Gradle忽略已解析模块和工件的所有缓存条目。
长explanantion
WIth –refresh-dependencies’ Gradle will always hit the remote server to check for updated artifacts: however, Gradle will avoid downloading a file where the same file already exists in the cache. First Gradle will make a HEAD request and check if the server reports the file as unchanged since last time (if the ‘content-length’ and ‘last-modified’ are unchanged). In this case you’ll get the message: "Cached resource is up-to-date (lastModified: {})." Next Gradle will determine the remote checksum if possible (either from the HEAD request or by downloading a ‘.sha1’ file).. If this checksum matches another file already downloaded (from any repository), then Gradle will simply copy the file in the cache, rather than re-downloading. In this case you’ll get the message: "“Found locally available resource with matching checksum: [{}, {}]”.
使用删除: 当你删除缓存
rm -rf $HOME/.gradle/caches/
你只需要清理所有缓存的jar和sha1和,Gradle在你的机器上没有工件的情况下,必须下载所有东西。是的,第一次它将100%工作,但是当另一个快照被释放并且它是依赖树的一部分时,您将再次面临刷新或清除缓存的选择。
您需要重新下载它,因此您可以手动下载并替换损坏的文件,并再次同步您的项目。去这个位置 C: \用户【用户名】.gradle \包装\ dist gk2rcmfc6p2dg9u9ohc3hw9 55 \ gradle3.3-all \ \ gradle all.zip——3.3 在此删除gradle3.3allzip,并重新从该站点下载 https://services.gradle.org/distributions/ 找到相同的文件,下载并粘贴到该位置 然后同步你的项目。 希望它也适用于你。
推荐文章
- Jersey在未找到InjectionManagerFactory时停止工作
- Gradle代理配置
- Gradle替代mvn安装
- 为什么要把Gradle Wrapper提交给VCS?
- 在构建中编写注释的语法是什么?gradle文件?
- 它目前正在被另一个Gradle实例使用
- 多个dex文件定义了landoid /support/v4/accessibilityservice/AccessibilityServiceInfoCompat
- Gradle:无法确定java版本从11.0.2开始
- Gradle构建脚本依赖项
- 如何确定Gradle的版本?
- Android Studio突然无法解析符号
- 没有找到Gradlew命令?
- 无法找到com.google.android.gms:play-services:3.1.59 3.2.25 4.0.30 4.1.32 4.2.40 4.2.42 4.3.23 4.4.52 5.0.77 5.0.89 5.2.08 6.1.11 6.1.71 6.5.87
- .dex文件中方法引用的数量不能超过64k API 17
- 我如何解决错误“minCompileSdk(31)指定在一个依赖的AAR元数据”在本机Java或Kotlin?