1
我正在将Java库迁移到Gradle,我遇到了下面定义的集成任务的一些问题。Gradle 4.0-milestone2上的集成测试
这个任务让我有两种不同的源目录src/test
和src/integration
,并有独立的gradle这个任务来运行它们,./gradlew test
和./gradlew integration
。
的build.gradle
apply plugin: 'java-library'
apply plugin: 'idea'
apply from: './integration.gradle'
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
dependencies {
api 'com.github.ihsanbal:LoggingInterceptor:2.0.0'
api 'com.squareup.okhttp3:okhttp-urlconnection:3.2.0'
api 'com.squareup.retrofit2:retrofit:2.0.2'
api 'com.squareup.retrofit2:converter-gson:2.0.2'
api 'com.squareup.retrofit2:adapter-rxjava:2.0.2'
testImplementation 'junit:junit:4.12'
}
test {
testLogging.showStandardStreams = true
}
task copyTestResources(type: Copy) {
from sourceSets.test.resources
into sourceSets.test.output.classesDir
}
processTestResources.dependsOn copyTestResources
integration.gradle
sourceSets {
integration {
java {
compileClasspath += main.output + test.output
runtimeClasspath += main.output + test.output
srcDir file('src/integration/java')
}
resources.srcDir file('src/integration/resources')
}
}
configurations {
integrationCompile.extendsFrom testCompile
integrationRuntime.extendsFrom testRuntime
}
idea {
module {
testSourceDirs += file('src/integration/java')
scopes.TEST.plus += [configurations.integrationCompile]
}
}
task integration(type: Test) {
testClassesDir = sourceSets.integration.output.classesDir
classpath = sourceSets.integration.runtimeClasspath
}
integration.mustRunAfter test
内容内容有两个问题与此配置。
1)copyTestResources
任务不起作用classesDir
已弃用且classesDirs
不兼容。
2)类路径不包括库依赖关系。 编译失败完全以下错误
error: cannot find symbol
error: package SOMETHING does not exist
关于如何解决这个问题的任何线索?谢谢