从具有未知根的子项目运行gradle任务

时间:2017-08-18 18:55:42

标签: eclipse gradle buildship

我在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运行任务一样。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用composite builds。假设您在SubProjectA,并希望针对SubProjectB进行构建。您可以执行以下命令:

gradle --include-build ../anotherDirectory/SubProjectB run

SubProjectB将首先构建,然后SubProjectA

相关问题