Gradle 已忽略integrationTestCompile渐变依赖项

Gradle 已忽略integrationTestCompile渐变依赖项,gradle,dependency-management,integration-testing,Gradle,Dependency Management,Integration Testing,在写了几篇博文之后,我尝试在gradle中创建一个单独的集成测试源文件夹。我还想向integrationTest任务添加一些额外的(arquillian)依赖项,但是integrationTestCompile似乎被忽略了,我得到了一个编译错误,附加的依赖项没有得到解决。当我将dependecy更改为testCompile时,它工作得很好。为什么会这样?如何改变?我的简单测试类: //compilation fails with [Static type checking] - The var

在写了几篇博文之后,我尝试在gradle中创建一个单独的集成测试源文件夹。我还想向integrationTest任务添加一些额外的(arquillian)依赖项,但是integrationTestCompile似乎被忽略了,我得到了一个编译错误,附加的依赖项没有得到解决。当我将dependecy更改为testCompile时,它工作得很好。为什么会这样?如何改变?我的简单测试类:

//compilation fails with  [Static type checking] - The variable [ArquillianSputnik] is undeclared
@TypeChecked
@RunWith(ArquillianSputnik)
class TestSpec extends Specification {


}
和gradle.build:

apply plugin: 'groovy'
apply plugin: 'war'

war.dependsOn 'native2ascii'

task native2ascii << {

    ant.delete() {
        fileset(dir: "${processResources.destinationDir}") {
            include(name: '*.properties')
        }
    }
    ant.native2ascii(src: 'src/main/resources/',
            dest: "${processResources.destinationDir}",
            includes: '**/*.properties',
            encoding: 'UTF-8')
}

repositories {
    mavenCentral()
    maven {
        url 'http://repository.jboss.org/nexus/content/groups/public'
    }
    mavenLocal()
}

sourceSets.main.java.srcDirs = []
sourceSets.main.groovy.srcDirs += ["src/main/java"]

sourceSets {
    integrationTest {
        groovy.srcDir file('src/integration-test/groovy')
        resources.srcDir file('src/integration-test/resources')
        compileClasspath = sourceSets.main.output + configurations.testCompile
        runtimeClasspath = output + compileClasspath + configurations.testRuntime
    }
}

dependencies {
    //(...) non-test dependencies cut out for clarity

    testCompile 'org.spockframework:spock-core:0.7-groovy-2.0'
    testCompile 'cglib:cglib-nodep:2.2.2'
    testCompile 'org.objenesis:objenesis:1.2'

    //when integrationTestCompile is changed to testCompile the compilation works and the test is executed
    integrationTestCompile 'org.jboss.arquillian.spock:arquillian-spock-container:1.0.0.Beta3'
    integrationTestCompile 'org.jboss.arquillian.graphene:graphene-webdriver:2.0.3.Final'
    integrationTestCompile 'org.jboss.as:jboss-as-arquillian-container-managed:7.2.0.Final'
}

task integrationTest(type: Test, dependsOn: 'test') {
    testClassesDir = sourceSets.integrationTest.output.classesDir
    classpath = sourceSets.integrationTest.runtimeClasspath

}

check.dependsOn 'integrationTest'
apply插件:“groovy”
应用插件:“战争”
war.dependsOn“native2ascii”

task native2ascii首先,您希望将添加到编译和运行时类路径中,而不是替换它们。这实际上只是意味着使用
+=
操作符,而不是
=
操作符。此外,您确实只想添加其他源集输出,我们将分别处理配置

compileClasspath += sourcesets.main.output + sourcesets.test.output
runtimeClasspath += sourcesets.main.output + sourcesets.test.output
接下来,我们要配置集成测试配置。通常,这只是意味着让它们扩展测试并编译测试,以便它们也包含所有这些依赖项

configurations {
    integrationTestCompile.extendsFrom testCompile
    integrationTestRuntime.extendsFrom testRuntime
}