mat*_*ttm 10 caching gradle android-gradle-plugin
本地 gradle 缓存存储 maven/gradle 依赖项的副本。如何清除gradle缓存?涵盖如何清除整个缓存,而不是单个包。
有没有一种简单的方法可以从本地 gradle 缓存中删除一个包?例如,在积极开发库时,这会很有用。为了测试一个小的库更改,我目前必须从文件系统中清除整个缓存,以便不使用旧的缓存版本的库。
我知道也可以使用如何强制 gradle 重新下载依赖项中描述的gradle ResolutionStrategy ?. 我不希望更改 gradle 配置,因为大多数情况下,对于大多数开发人员来说,默认缓存行为很好。
所以这是我快速编写的脚本:
defaultTasks 'seekAndDestroy'
repositories{ //this section *needs* to be identical to the repositories section of your build.gradle
jcenter()
}
configurations{
findanddelete
}
dependencies{
//add any dependencies that you need refreshed
findanddelete 'org.apache.commons:commons-math3:3.2'
}
task seekAndDestroy()<<{
configurations.findanddelete.each{
println 'Deleting: '+ it
delete it.parent
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过运行来调用此脚本 gradle -b seekanddestroy.gradle
演示它是如何工作的:如果你的 build.gradle 看起来像这样:
apply plugin:'java'
repositories{
jcenter()
}
dependencies{
compile 'org.apache.commons:commons-math3:3.2'
}
Run Code Online (Sandbox Code Playgroud)
第一次构建,包括下载依赖项:
? gradle clean build | grep Download
Download https://jcenter.bintray.com/org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar
Run Code Online (Sandbox Code Playgroud)
第二个干净的构建,使用缓存的依赖项,所以没有下载:
? gradle clean build | grep Download
Run Code Online (Sandbox Code Playgroud)
现在运行seekanddestroy:
? gradle -b seekanddestroy.gradle -q
Deleting: .gradle\caches\modules-2\files-2.1\org.apache.commons\commons-math3\3.2\ec2544ab27e110d2d431bdad7d538ed509b21e62\commons-math3-3.2.jar
Run Code Online (Sandbox Code Playgroud)
下一次构建,再次下载依赖项:
? gradle clean build | grep Download
Download https://jcenter.bintray.com/org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4484 次 |
| 最近记录: |