2015-09-23 82 views
1

当我为我的Android项目运行./gradlew clean时,任务因未解决所有依赖项而失败。抱怨来自Gradle任务_debugCompileGradle clean任务因未解决所有依赖项而失败

我可以确认当地的一些相关性并不存在其失败的依赖解析过程,但我仍然好奇为什么清洁任务将检查相关性,同时不生成项目。

不应该只是删除一些目录,如下面的链接所述? https://docs.gradle.org/current/userguide/java_plugin.html#sec:clean

是否有任何gradle内置任务可以只是清理build文件夹而不检查依赖关系?

谢谢!

回答

2

Gradle已经解决了它在执行阶段之前的配置阶段的依赖性,请参阅The Build Lifecycle(尽管它只在需要时下载依赖项)。但是,过时的依赖不会导致解析失败。如果解析失败,那么依赖关系可能不再可用。如果你仍然在你的摇篮缓存的依赖你也许可以通过指定--offline开关来解决此问题:

$ ./gradlew --offline clean 
+1

谢谢你的解释:)所以我的理解是,即使是任务,因为'clean'一样简单,gradle必须经过这三个阶段的初始化,配置和执行。在“配置”阶段,gradle将解析所有依赖关系(检查它们的可用性?)并运行依赖项目的构建脚本。所有这些完成后,gradle将最终到达执行阶段并运行clean任务。所以在'clean'任务之前无法逃避检查依赖关系的过程。我的理解是否有效? – hackjutsu

+0

是的。有一个正在孵化的[--configure-on-demand](https://docs.gradle.org/current/userguide/multi_project_builds.html#sec:configuration_on_demand)[命令行选项](https://docs.gradle。 org/current/userguide/gradle_command_line.html)只在配置阶段配置相关的项目(而不是全部),但在这里没有帮助,因为'./gradlew clean'意味着在所有项目中执行'clean' ,所以他们都是相关的。 – sschuberth

+0

谢谢你的详细解释:) – hackjutsu

相关问题