【发布时间】:2017-10-30 13:57:24
【问题描述】:
我正在将 Java 库迁移到 Gradle 4.0-milestone2,但在下面定义的集成任务中遇到了一些问题。
此任务允许我拥有两个不同的源目录 src/test 和 src/integration 并拥有单独的 gradle 任务来运行它们,./gradlew test 和 ./gradlew integration。
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
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
这个配置有两个问题。
1) copyTestResources 任务不起作用,因为 classesDir 已弃用且 classesDirs 不兼容。
2) 类路径不包括库依赖项。 编译失败充满以下错误
error: cannot find symbol
error: package SOMETHING does not exist
关于如何解决这个问题的任何线索?谢谢
【问题讨论】:
标签: gradle android-gradle-plugin build.gradle gradlew