2013-02-08 49 views
2

settings.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文件,它的文件夹共享和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,但没有奏效,其他人有什么想法吗?

+0

我假设你还为root项目声明了'defaultTasks'?根据我所知道的,只考虑默认项目的defaultTasks(根据Gradle被调用的目录确定)。 – 2013-02-09 07:13:20

+0

你是否总是想跳过'serverTest:test'任务,或者只是有时候? – 2013-02-11 10:49:35

+0

@HieryNomus总是当我从顶层 – Grammin 2013-02-11 17:38:48

回答

2

你可以尝试禁用任务只有一个构建任务存在......是这样的:

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

嗯,这问题已经被问以不同的方式,问题的主题是;

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

1。 gradle build -x test

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

2。 check.dependsOn - = test

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

干杯!

相关问题