我怎么能告诉gradle这个从仓库重新下载的依赖?
Answer 1:
一般情况下,你可以在命令行选项缓存刷新依赖--refresh依赖性 。 您也可以删除在缓存文件~/.gradle/caches
。 随着未来构建摇篮将尝试重新下载。
什么是您的具体使用情况? 您是否使用动态依赖版本或快照版本?
在Unix系统中,你可以删除所有现有的工件(工件和元数据)已经摇篮使用下载:
rm -rf $HOME/.gradle/caches/
Answer 2:
如果您使用的是最新的摇篮版本,你可以使用--refresh依赖性选项。
./gradlew build --refresh-dependencies
你可以参考的摇篮手册 。
该--refresh依赖性选项告诉摇篮忽略所有缓存条目解析模块和文物。 新鲜的决心将针对所有配置的仓库中进行,以重新计算的动态版本,更新模块和下载的构件。
Answer 3:
你可以告诉摇篮通过标记的依赖为“改变”重新下载在构建脚本一些依赖。 然后摇篮将检查更新每24小时,但是这可以通过使用resolutionStrategy DSL配置。 我觉得有用使用这种用于快照或每晚构建。
configurations.all {
// Check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
扩展:
dependencies {
compile group: "group", name: "projectA", version: "1.1-SNAPSHOT", changing: true
}
凝结:
compile('group:projectA:1.1-SNAPSHOT') { changing = true }
我发现在这此解决方案论坛主题 。
Answer 4:
对于MAC
./gradlew build --refresh-dependencies
对于Windows
gradlew build --refresh-dependencies
也可以尝试gradlew assembleDevelopmentDebug --refresh-dependencies
Answer 5:
对于Windows ......为了使gradle这个重新下载特定的依赖关系:
删除你要重新下载从下面的目录的依赖关系:
C:\Users\[username]\.gradle\caches\modules-2\files-2.1
删除在路径的所有元数据目录:
C:\Users\[username]\.gradle\caches\modules-2\metadata-*
运行
gradle build
(或gradlew build
,如果使用gradle这个包装)在项目的根目录。
注意:在文件路径上面的数字可能是你不同的。
Answer 6:
人们可以使用缓存的罐子删除文件夹。
就我而言, 在Mac库被缓存在路径:
/Users/MY_NAME/.gradle/caches/modules-2/files-2.1/cached-library-to-remove
我删除缓存的库文件夹(即“缓存库可以拆卸”在上面的例子中),删除了我的项目的生成文件夹,然后再编译。 保鲜库被下载即可。
Answer 7:
而不是删除整个gradle这个缓存,像一些答案在这里所提出的建议,你可以删除特定组或工件ID缓存。 我增加了以下功能到我的.bash_profile
:
deleteGradleCache() {
local id=$1
if [ -z "$id" ]; then
echo "Please provide an group or artifact id to delete"
return 1
fi
find ~/.gradle/caches/ -type d -name "$id" -prune -exec rm -rf "{}" \; -print
}
用法:
$ deleteGradleCache com.android.support
然后,在接下来的构建,或者如果你重新同步,将gradle这个重新下载的依赖。
Answer 8:
这为我工作。 确保摇篮未设置由文件取消选中按钮>设置>摇篮>离线工作离线。
添加到您的build.gradle的顶层,很高兴有上述的依赖
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
我确信我的依赖是这样写的:
implementation('com.github.juanmendez:ThatDependency:ThatBranch-SNAPSHOT') {
changing = true
}
此后,我打开Android Studio中的摇篮面板,然后单击蓝色圆圈箭头按钮。 我总能看到我的更新得到一个新的全新副本。
Answer 9:
有2种方式来做到这一点:
- 使用命令行选项来刷新dependenices cashe。
- 您可以删除本地缓存,其中artefasts是由摇篮和触发构建缓存
使用--refresh依赖性选项:
./gradlew build --refresh-dependencies
简短的说明 --refresh依赖性选项告诉摇篮忽略所有缓存条目解析模块和文物。
龙explanantion
- 与-refresh依赖性摇篮总是打远程服务器检查更新的文物:但是,摇篮将避免那里下载同一个文件已经存在于缓存中的文件。
- 首先摇篮将使HEAD请求,并检查服务器报告自上次那样不变的文件(如果“内容长度”和“最后一次修改”不变)。 在这种情况下,你会得到消息:“缓存的资源是最多最新的(上次更改时间:{})。”
- 接下来摇篮将确定远程校验,如果可能的(无论是从HEAD请求或通过下载” .sha1' 文件)。如果此校验已下载的另一个文件(从任何存储库)相匹配,然后将摇篮简单复制的文件高速缓存,而不是重新下载。 在这种情况下,你会得到消息:“‘找到当地现有的资源相匹配的校验:[{},{}]’。
使用删除:当你删除缓存
rm -rf $HOME/.gradle/caches/
你刚才清理所有缓存的罐子和SHA1资金和摇篮是在情况下有你的机器上没有的文物和具有下载的一切。 是的,它会工作100%的第一次,但另一个快照被释放时,这是你的依赖关系树的一部分,你将再次在选择前要面临刷新或清除缓存。
Answer 10:
删除这个目录:
C:\Users\[username]\.gradle
Answer 11:
对于那些谁不知道跑哪里去了gradle这个命令:
开放的Android工作室 - >点击终端(你会发现它在Android Studio中的基础) - >命令的工具将打开--->键入命令(gradlew建立--refresh依赖性)
Answer 12:
MB我来不及但是我的解决方案是单一的存储库。 我想删除〜/ .gradle / *是矫枉过正。 我碰到了problmem是,我是删除目录,来源是和gradle这个从关系得到另一个版本不。 为了避免我运行了下:
~/.gradle$ find . -type d -name 'group.plugins.awssdk'
./caches/modules-2/files-2.1/group.plugins.awssdk
./caches/modules-2/metadata-2.23/descriptors/group.plugins.awssdk
~/.gradle$ rm -r ./caches/modules-2/files-2.1/group.plugins.awssdk ./caches/modules-2/metadata-2.23/descriptors/group.plugins.awssdk
那之后的gradle从关系拖动文件。
Answer 13:
我认为gradle这个2.14.1修复该问题。 接受的答案是正确的,但在与-refresh依赖性gradle这个错误。 2.14.1修复了。
见https://discuss.gradle.org/t/refresh-dependencies-should-use-cachechangingmodulesfor-0s/556
Answer 14:
对于大多数情况下,只是简单地重新建设项目应该做的伎俩。 有时候,你必须运行./gradlew build --refresh-dependencies
几个答案已经提到了(需要很长的时间,这取决于你有多少依赖有)。 如何过,有时无那些将工作:依赖就不会得到更新。 然后,你可以这样做:
- 从您的gradle这个文件中删除相关性
- 运行/调试项目,并等待它的失败(并
NonExistingClass
原因) - 点击“Build项目”,并等待其成功完成
- 再次运行/调试
这是荒谬的,似乎是疯狂的,但实际上我每天必做的使用这个程序,仅仅是因为我需要依赖可以更新几十次,没有足够的解决方案将有什么影响。
Answer 15:
你可以像下面这样做
https://marschall.github.io/2017/04/17/disabling-gradle-cache.html
要引用禁用摇篮构建缓存
该摇篮构建缓存可能是当你经常构建>有摇篮的大项目一个伟大的事情。 然而,当只是偶尔构建开源>项目它可以迅速变大。
要禁用摇篮打造高速缓存中的以下行添加到
~/.gradle/gradle.properties
org.gradle.caching=false
您可以清理与现有的缓存
rm -rf $HOME/.gradle/caches/ rm -rf $HOME/.gradle/wrapper/
Answer 16:
如果使用的是Eclipse,如果你想强制日食重新加载依赖,你可以试试下面的命令
gradlew clean cleaneclipse build eclipse --refresh-dependencies
Answer 17:
删除所有的缓存使得重新下载所有dependacies。 所以要花这么长的时间,很是无聊的事情再次等待再次重新下载所有的依赖关系。
如何以往我可能是能够解决这个下面的方法。
只是删除其需要刷新组。
例如:如果我们要刷新com.user.test组
rm -fr ~/.gradle/caches/modules-2/files-2.1/com.user.test/
然后从的build.gradle依赖,并重新添加它。 然后它会刷新依赖我们想要的东西。
Answer 18:
该解决方案中没有以上为我工作。
如果您使用的IntelliJ,有什么解决这对我来说是只需刷新所有摇篮项目:
Answer 19:
您需要重新下载它,这样你就可以手动下载并更换损坏的文件,并再次同步您的项目。 转到此位置C:\用户[用户名] .gradle \包装\ DIST \ gradle3.3,所有\ 55gk2rcmfc6p2dg9u9ohc3hw9 \ gradle-3.3-all.zip这里删除gradle3.3allzip并从该网站下载再次更换的https:/ /services.gradle.org/distributions/找到相同的文件,下载并粘贴到该位置然后同步您的项目。 希望它为你工作了。