Java 有没有办法为gradle中新创建的源集指定依赖项?

Java 有没有办法为gradle中新创建的源集指定依赖项?,java,dependency-management,gradle,Java,Dependency Management,Gradle,在gradle中,我为服务测试创建了一个新的sourceSet,如下所示: sourceSets{ servicetest{ java.srcDirs = [//path to servicetests] } } 此源代码集依赖于TestNG,因此我希望通过执行以下操作来降低依赖性: dependencies{ servicetest(group: 'org.testng', name: 'testng', version: '5.8', classif

在gradle中,我为服务测试创建了一个新的
sourceSet
,如下所示:

sourceSets{
    servicetest{
        java.srcDirs = [//path to servicetests]
    }
}
此源代码集依赖于TestNG,因此我希望通过执行以下操作来降低依赖性:

dependencies{
    servicetest(group: 'org.testng', name: 'testng', version: '5.8', classifier: 'jdk15')
}

不幸的是,这将返回一个错误。是否有任何方法可以声明特定
源集的依赖关系或我运气不佳?

最近的Gradle版本会自动为每个源集“foo”创建并连接配置“foocomile”和“fooRuntime”

如果仍在使用旧版本,则可以声明自己的配置并将其添加到源集的compileClasspath或runtimeClasspath。比如:

configurations {
    serviceTestCompile
}

sourceSets {
    serviceTest {
        compileClasspath = configurations.serviceTestCompile
    }
}

dependencies {
    serviceTestCompile "org.testng:testng:5.8"
}

以下是Gradle 1.4的工作

apply plugin: 'java'

sourceCompatibility = JavaVersion.VERSION_1_6

sourceSets {
    serviceTest {
        java {
            srcDir 'src/servicetest/java'
        }
        resources {
            srcDir 'src/servicetest/resources'
        }
        compileClasspath += sourceSets.main.runtimeClasspath
    }
}

dependencies {
    compile(group: 'org.springframework', name: 'spring', version: '3.0.7')

    serviceTestCompile(group: 'org.springframework', name: 'spring-test', version: '3.0.7.RELEASE')
    serviceTestCompile(group: 'org.testng', name:'testng', version:'6.8.5')
}


task serviceTest(type: Test) {
    description = "Runs TestNG Service Tests"
    group = "Verification"
    useTestNG()
    testClassesDir = sourceSets.serviceTest.output.classesDir
    classpath += sourceSets.serviceTest.runtimeClasspath
}

很高兴知道这一点,但不幸的是,我现在只能使用gradle 0.9.2。当你说“最近”,是什么版本?这不适用于Gradle 1.4。