JavaライブラリをGradleに移行していますが、以下に定義されている統合タスクに関するいくつかの問題が発生しました。Gradle 4.0マイルストーン2での統合テスト
このタスクでは、私は二つの異なるソースディレクトリ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
任意の手掛かり次のエラーの完全な失敗しますか?ありがとうございます