在子项目

时间:2018-03-31 18:13:31

标签: gradle build.gradle gradle-task

我有一个像这样的多项目构建

main
|_build.gradle
|_settings.gradle
|_examples
|_|_build.gradle
|_|_simple-project
|_|_|_build.gradle

settings.gradle

rootProject.name = 'main'
include 'examples'
include 'examples:simple-project'

现在在examples项目build.gradle中,我已经为所有子项目声明了一个任务,如下所示:

subprojects {
    task hello(group: 'example') {
        doLast {
            println "${it.project.name}: I am part of example"
        }
    }
}

当我运行gradle tasks --all时,我得到的输出类似于以下内容(其他人):

Example tasks
-------------
examples:simple-project:hello

现在我尝试像这样simple-project运行该任务

gradle -p examples/simple-project hello

我得到的输出是:

  

失败:构建因异常而失败。

     
      
  • 出了什么问题:任务'你好'没有在项目中找到':示例:simple-project'。有些候选人是:'帮助'

  •   
  • 尝试:运行gradle任务以获取可用任务列表。使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获得全面的见解。

  •   
  • https://help.gradle.org

  • 获取更多帮助   
     

在0s内建立失败

我做错了什么?在子项目中运行任务的正确方法是什么?

修改

如果我改为运行

gradle -p examples hello

然后这也运行子项目任务(hello

  

>任务:示例:simple-aspect-project:hello

     

simple-aspect-project:我是一个例子

我不想要这个。我希望能够为我想要的子项目运行任务,而不是一次完成所有这些任务。

1 个答案:

答案 0 :(得分:1)

简单的file

怎么样?

我认为设置gradle :examples:simple-project:hello会缩小-p examples/simple-project项目的范围,并取消simple-project项目中的hello任务创建。