当我在settings.gradle文件中包含项目时,如何不包含构建任务?

时间:2013-02-08 19:16:01

标签: build task gradle

我的settings.gradle文件如下:

include "serverTest", "shared"

serverTest build.gradle文件如下所示:

group = 'gradle'
version = '1.0'
defaultTasks 'build'
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility = JavaVersion.VERSION_1_6

dependencies
{
  compile project(':shared')
}

目录结构是:顶层包含settings.gradle文件,其中包含文件夹shared和serverTest。然后在serverTest目录中有build.gradle文件。

当我在顶层运行gradle时,它会输出:

:shared:compileJava UP-TO-DATE
:shared:processResources UP-TO-DATE
:shared:classes UP-TO-DATE
:shared:jar UP-TO-DATE
:serverTest:compileJava UP-TO-DATE
:serverTest:processResources UP-TO-DATE
:serverTest:classes UP-TO-DATE
:serverTest:jar UP-TO-DATE
:serverTest:assemble UP-TO-DATE
:serverTest:compileTestJava
:serverTest:processTestResources UP-TO-DATE
:serverTest:testClasses
:serverTest:test

我不希望它执行任务:serverTest:test。我尝试将defaultTasks更改为只是compileJava但是没有用,其他人有什么想法吗?

2 个答案:

答案 0 :(得分:5)

这个问题已经以不同的方式提出,问题的主题是:

如何排除构建任务的子任务?

1。 gradle build -x test

从CLI执行gradle build命令时,上述说明很有用;这不包括测试任务,但我们希望在build.gradle文件中以编程方式排除测试任务。请查看相应问题的答案。

2。 check.dependsOn - = test

将此小脚本复制到build.gradle文件中。 现在,当您从CLI执行 gradle build 时,您的测试根本无法运行。

干杯!

答案 1 :(得分:2)

您可以尝试仅在存在构建任务时禁用该任务...类似于:

project(":serverTest").test.onlyIf { !gradle.taskGraph.hasTask(":shared:build") }