我无法找到关于这个主题的任何解释,只是作为一个事实给出了它,但我对它是如何工作感兴趣。
例如,让我们采取'构建'任务,这是由子项目中的'java'插件提供的(但在根项目中不可用)。
什么使构建任务在root中可用?是否有一些属性使父项目中的任务可用?
答案 0 :(得分:0)
如果在多项目构建中将任务名称作为参数调用Gradle,则将执行在任何根或子项目中具有指定名称的每个任务。如果您只想执行给定名称的特定任务,请对子项目使用:mySubProject:build
之类的任务路径,或为根项目使用:build
。
请注意,这与访问build.gradle
文件中的项目无关。在此文件中,只有当前项目的任务可用。要访问其他项目中的任务,您可以使用他们的任务容器,如rootProject.tasks['build']
或project(':sub').tasks['build']
。但是,您可能会遇到问题,导致在您尝试访问它们时可能无法创建任务。
对于任务依赖项,您只需使用包含绝对任务路径的字符串,例如dependsOn ':sub:build'
或dependsOn ':build'
。在此上下文中仅使用'build'
将仅引用当前项目中具有特定名称的任务。
答案 1 :(得分:-1)
build
任务是lifecycle task(即一项任务本身并没有做任何事情,但它可以dependsOn
其他任务)。请参阅base plugins,其中列出了有关base
插件
添加标准生命周期任务
如果您想在根项目中执行build
任务,则需要添加:
apply plugin: 'base'