Gradle多项目根级构建任务

时间:2016-04-25 13:31:00

标签: java gradle build.gradle

我有一个非常基本的多项目Gradle设置,如下所示:

root
+--- build.gradle
+--- settings.gradle
+--- subproject1
     \--- build.gradle
\--- subproject2 
     \--- build.gradle

settings.gradle文件包含两个子项目。根项目不适用java插件,但两个子项目都适用。使用gradle build时,所有内容都按预期构建。

但是,据我所知,由于我不在根项目中应用java插件,因此不应该有build任务。

  • gradle tasks的输出,显示build任务。
  • gradle tasks --all的输出仅显示:subproject1:build:subproject2:build

所以我的问题是 - 在这种情况下究竟执行了什么? gradle是否只找到与所有子项目中的耗材模式匹配的每个任务?有关此任务名称解析的具体规则吗?我在哪里可以找到更多关于此的信息?

1 个答案:

答案 0 :(得分:1)

是的,你是对的。如果仅使用任务名称或任务名称缩写,则该任务将在当前目录的所有子项目中执行。如果您只想调用subporject1 s build任务,请使用gradle :subproject1:build的绝对路径或相对路径。如果你在根目录e。 G。相对路径为gradle subproject1:build 您可以在https://docs.gradle.org/current/userguide/intro_multi_project_builds.html#N10762了解更多相关信息。

顺便说一下。你应该考虑使用Gradle Wrapper。每个兼顾Gradle的项目也应该使用Gradle Wrapper。它是Gradle最有效的强项之一,因为您只需要安装Java,而不需要Gradle或Maven或ant或其他任何东西,并且构建始终使用您设计的Gradle版本运行。