Java 有没有办法为gradle中新创建的源集指定依赖项?
在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
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。