有些时候,我们想在gradle项目中重新下载依赖项。如何才能强制等级依赖重新下载。
这篇文章描述了如何在gradle项目中通过命令行强制快照和释放依赖。
在开发中,我们有很多用例需要重新下载依赖项
- 当你第一次进行Gradle构建时,它会下载所有的依赖项 假设构建失败,并且由于网络问题,一些依赖项没有被下载
- 有些时候,依赖的版本已经改变了,你必须重新下载新的版本
Gradle从远程仓库(如nexus)下载依赖项。我的java应用构建失败了,因为spring-core只加载了一部分,没有完全下载。
清理Gradle缓存或单一依赖
这是一个简单明了的方法,可以从构建中移除所有gradle缓存。
gradle依赖项和元数据存储在项目的.gradle/caches/文件夹下。
在windows下,这个文件夹位于C:\Users%USERNAME%.gradle\cache 在linux下,你可以在用户主目录$userhome/.gradle/caches/中找到。
在Windows上,你可以手动删除.gradle/caches/ 文件夹,然后重新进行gradle构建,它会从头开始下载依赖。
在Linux上,你可以使用下面的运行命令
rm -rf $userhome/.gradle/caches/
唯一的缺点是,如果你的gradle项目有很多的依赖,你必须第一次下载所有的依赖,这是个耗时的过程。
让我们来看看其他方法
如何在命令行中强制更新gradle项目的依赖项?
这是gradle在命令行中提供的一个内置的选项
--refresh-dependencies 命令行参数告诉gradle build忽略cache文件夹的依赖性,并从远程资源库重新下载所有的依赖性。
下面是一个命令行选项
在windows下,你可以使用以下命令
gradlew build --refresh-dependencies
如果是spring boot项目,你可以使用下面的命令
gradlew bootRun --refresh-dependencies
在Linux和Mac系统中,你可以使用下面的命令
./gradlew build --refresh-dependencies
如果是spring boot项目,你可以使用下面的命令
./gradlew bootRun --refresh-dependencies
使用cacheChangingModulesFor构建gradle配置并改变属性。
在build.gradle文件中,你可以添加以下配置
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
对于gradle版本<6.3,我在gradle配置中改变属性的依赖项如下
implementation('com.package:artifact:1.0.1-SNAPSHOT') {
changing = true
}
对于gradle版本>6.3
implementation('com.package:artifact:1.0.1-SNAPSHOT') {
isChanging = true
}
总结
列出了不同的方法来更新gradle项目中的依赖关系。