为什么命令行和依赖性中的任务解析不同?



我在我的gradle构建中使用shadowJar插件。某些子项目具有 shadowJar 任务。

如果我从命令行运行gradlew shadowJar,则会执行所有子项目的 shadowJar 任务。另一方面,如果我有另一个dependsOn shadowJar的任务并且我运行该任务,则它仅在根项目上运行 shadowJar 任务。

这是什么原因,如何使我的依赖项使用与命令行工具相同的任务解决机制?

这完全没问题。从命令行中,gradle 处理此问题并解析参与当前构建的所有项目的任务 - 包含在初始化阶段。

而当你使用dependsOn时,它取决于在哪个:你表达依赖关系build.gradle以及在哪个块中,例如subprojectsallprojects.

最新更新