我在我的gradle构建中使用shadowJar插件。某些子项目具有 shadowJar 任务。
如果我从命令行运行gradlew shadowJar
,则会执行所有子项目的 shadowJar 任务。另一方面,如果我有另一个dependsOn shadowJar
的任务并且我运行该任务,则它仅在根项目上运行 shadowJar 任务。
这是什么原因,如何使我的依赖项使用与命令行工具相同的任务解决机制?
这完全没问题。从命令行中,gradle 处理此问题并解析参与当前构建的所有项目的任务 - 包含在初始化阶段。
而当你使用dependsOn
时,它取决于在哪个:你表达依赖关系build.gradle
以及在哪个块中,例如subprojects
或allprojects
.