我在 gradle 中有一个多项目设置,其结构有点扁平,如下所示:
RootProject/
build.gradle
settings.gradle
SubProjectA/
build.gradle
anotherDirectory/
SubProjectB/
build.gradle
SubProjectC/
build.gradle
根项目实际上只是一个根构建。它可以将所有其他项目联系在一起。SubProjectB 依赖于 SubProjectC,C 依赖于 A。
从根项目运行任务按预期工作。我可以运行gradle :SubProjectB:build
,它将无错误地构建 SubProjectB 及其依赖项。
我的问题是,如果我尝试从子项目的目录运行任务,如果该子项目依赖于任何其他子项目,它会失败,因为它不知道没有根项目的任何其他子项目在哪里设置文件。因此,从其目录运行 A 的构建会起作用,但运行 B 或 C 会失败。
在这个结构中我可以做些什么来定义根项目实际上是什么,这样如果我从 B 运行,它的行为与从根项目的目录gradle build
运行相同?gradle :SubProjectB:build
最终目标是让从命令行使用 gradle 变得更容易,并在子项目中获得功能性默认任务。这样,我应该能够双击项目 Eclipse 的 Gradle 任务列表,并让它运行默认任务,就好像它从 root 运行任务一样。