在Gradle中,我为这样的服务测试创建了一个新的sourceSet
:
sourceSets{
servicetest{
java.srcDirs = [//path to servicetests]
}
}
这个源集取决于TestNG,所以我希望通过执行以下操作来降低依赖性:
dependencies{
servicetest(group: 'org.testng', name: 'testng', version: '5.8', classifier: 'jdk15')
}
不幸的是,这会返回错误。有没有办法声明特定sourceSet
的依赖关系还是我运气不好?
答案 0 :(得分:4)
最近的Gradle版本为每个源集'foo'自动创建并连接配置'fooCompile'和'fooRuntime'。
如果您仍在使用旧版本,则可以声明自己的配置并将其添加到源集的compileClasspath或runtimeClasspath。类似的东西:
configurations {
serviceTestCompile
}
sourceSets {
serviceTest {
compileClasspath = configurations.serviceTestCompile
}
}
dependencies {
serviceTestCompile "org.testng:testng:5.8"
}
答案 1 :(得分:2)
以下适用于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
}