2017-10-19 108 views
0

我有一个项目,包括像这样的一个子项目:如何从Gradle测试中调用Gradle子项目的任务?

Root Project 
|----gradle.build 
|----SubProject 
|----|----gradle.build 

子项目这里有许多我需要在根项目的测试命令被称为所谓的复制脚本。

所以我试图调用子项目的任务,在这样的根项目:

Task myTest(type: Test) { 
    Project(‘:SubProject’).tasks.myCopyTask.execut() 
} 

然而,这导致一个错误“无法为任务集获得未知属性‘myCopyTask’。”

你知道这个调用应该如何完成,以及正确的语法应该是什么?

回答

1

有多重的东西不是在你的榜样工作:

  1. 你应该从未呼叫execute的任务! 从不!任务由Gradles任务系统自动调用,调用execute可能会中断此系统。
  2. 创建任务时使用的关闭({ })用于配置。当任务被执行时,它不会被执行,而会在被创建时被执行。
  3. 创建并评估Gradle中的子项目创建并评估根项目。因此,当根项目得到评估时,子项目的任务甚至不存在。

您可以通过使用dependsOn法与绝对任务路径解决所有这些问题:

task myTest (type: Test) { 
    dependsOn ':Subproject:myCopyTask' 
} 
相关问题