Ben*_*hko 798
通常,您可以使用命令行选项--refresh-dependencies刷新缓存中的依赖项.您还可以删除缓存的文件~/.gradle/caches
.使用下一个版本,Gradle将尝试再次下载它们.
你的具体用例是什么?您使用动态依赖版本还是SNAPSHOT版本?
在Unix系统上,您可以删除Gradle使用以下命令下载的所有现有工件(工件和元数据):
rm -rf $HOME/.gradle/caches/
Run Code Online (Sandbox Code Playgroud)
Nag*_*aga 627
如果您使用的是最新版本的Gradle,则可以使用--refresh-dependencies选项.
./gradlew build --refresh-dependencies
Run Code Online (Sandbox Code Playgroud)
你可以参考Gradle手册.
--refresh-dependencies选项告诉Gradle忽略已解析模块和工件的所有缓存条目.将对所有已配置的存储库执行全新解析,重新计算动态版本,刷新模块并下载工件.
小智 294
您可以通过将依赖关系标记为"更改"来告诉Gradle重新下载构建脚本中的某些依赖项.Gradle将每24小时检查一次更新,但可以使用resolutionStrategy DSL进行配置.我发现将它用于SNAPSHOT或NIGHTLY构建很有用.
configurations.all {
// Check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
Run Code Online (Sandbox Code Playgroud)
扩展:
dependencies {
implementation group: "group", name: "projectA", version: "1.1-SNAPSHOT", changing: true
}
Run Code Online (Sandbox Code Playgroud)
凝结:
implementation('group:projectA:1.1-SNAPSHOT') { changing = true }
Run Code Online (Sandbox Code Playgroud)
我发现在这此解决方案论坛主题.
Ali*_*Ali 60
对于MAC
./gradlew build --refresh-dependencies
对于Windows
gradlew build --refresh-dependencies
也可以试试 gradlew assembleDevelopmentDebug --refresh-dependencies
Eri*_*ric 25
对于Windows ...为了使gradle重新下载特定的依赖项:
从以下目录中删除要重新下载的依赖项:
C:\Users\[username]\.gradle\caches\modules-2\files-2.1
Run Code Online (Sandbox Code Playgroud)删除路径中的所有元数据目录:
C:\Users\[username]\.gradle\caches\modules-2\metadata-*
Run Code Online (Sandbox Code Playgroud)在项目的根目录中运行gradle build
(或者gradlew build
如果使用gradle包装器).
注意:上面文件路径中的数字可能与您有所不同.
Far*_*han 18
可以使用缓存的jar删除文件夹.
就我而言,在Mac上,库被缓存在路径中:
/Users/MY_NAME/.gradle/caches/modules-2/files-2.1/cached-library-to-remove
我删除了缓存的库文件夹(上例中的"cached-library-to-remove"),删除了我的项目的build文件夹并重新编译.然后下载了鲜库.
Jar*_*ler 14
如此处的一些答案所示,您可以删除特定组或工件ID的缓存,而不是删除整个gradle缓存.我向我添加了以下功能.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
}
Run Code Online (Sandbox Code Playgroud)
用法:
$ deleteGradleCache com.android.support
Run Code Online (Sandbox Code Playgroud)
然后,在下一次构建或重新同步时,gradle将重新下载依赖项.
Kar*_*ról 14
要刷新缓存的“发布”版本,唯一的选择是清除本地缓存。
rm -rf $HOME/.gradle/caches/
Run Code Online (Sandbox Code Playgroud)
要刷新缓存的“快照”版本,您可以:
./gradlew build --refresh-dependencies
Run Code Online (Sandbox Code Playgroud)
kga*_*oid 13
对于那些想知道在哪里运行 gradle 命令的人:
gradlew build --refresh-dependencies
Vik*_*ren 13
如果您使用的是 Intellij,可以右键单击根项目,然后选择刷新 gradle 依赖项。
Car*_*sis 12
对于 Android Studio 3.4.1
只需打开gradle选项卡(可以位于右侧)并右键单击列表中的父项(应该称为“Android”),然后选择“刷新依赖项”。
这应该可以解决您的问题。
有两种方法可以做到这一点:
使用--refresh-dependencies选项:
./gradlew build --refresh-dependencies
Run Code Online (Sandbox Code Playgroud)
简短说明 --refresh-dependencies选项告诉Gradle忽略已解析模块和工件的所有缓存条目.
长解释
使用删除:删除缓存时
rm -rf $HOME/.gradle/caches/
Run Code Online (Sandbox Code Playgroud)
您只需清理所有缓存的jar和sha1总和,Gradle就会出现机器上没有工件并且必须下载所有内容的情况.是的,它将首次100%工作,但是当另一个SNAPSHOT被释放并且它是您的依赖树的一部分时,您将在选择之前再次面对刷新或清除缓存.
似乎change
已更改isChange
为 gradle 版本 6.3、kotlin 版本 1.3.70、Groovy 2.5.10
该工作配置
implementation("com.sample:commons:1.0.0-SNAPSHOT") {
isChanging = true
}
Run Code Online (Sandbox Code Playgroud)
此外,运行此命令以获取最新的
./gradlew assemble --refresh-dependencies
Run Code Online (Sandbox Code Playgroud)
这对我有用.通过取消选中文件>设置> Gradle>离线工作中的按钮,确保Gradle未设置为脱机.
将它添加到build.gradle的顶层,很高兴有上面的依赖项
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
Run Code Online (Sandbox Code Playgroud)
我确保我的依赖项是这样编写的:
implementation('com.github.juanmendez:ThatDependency:ThatBranch-SNAPSHOT') {
changing = true
}
Run Code Online (Sandbox Code Playgroud)
之后,我在Android Studio中打开Gradle面板,然后单击蓝色圆圈箭头按钮.我总能看到我的更新获得一个新的副本.
上面的解决方案都不适合我。
如果您使用IntelliJ,那么对我来说解决的就是简单地刷新所有Gradle项目:
Mb 我为时已晚,但是我的解决方案是针对单个存储库。我认为删除 ~/.gradle/* 是矫枉过正。我遇到的问题是我正在删除源所在的目录,而 gradle 正在获得另一个不是来自 nexus 的版本。为了避免我运行下一个:
~/.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
Run Code Online (Sandbox Code Playgroud)
之后gradle从nexus拖动文件。
就我而言,上述方法均无效,我所做的是:
build.gradle
,评论与我所拥有的未解决的导入相关的依赖关系然后我的导入再次得到正确解决。
归档时间: |
|
查看次数: |
515386 次 |
最近记录: |