provided
종속 범위가 다음과 같이 구성되었습니다. 내 문제는 제공되는 종속성이 런타임에 런타임에 표시되지 않는다는 것입니다. 의존성을 유지하기 위해 이것을 어떻게 구성 할 수 있습니까? provided
그러나 테스트 클래스 패스에서 사용할 수 있습니까?Gradle을 사용하여 클래스 패스 테스트에 제공된 종속성을 추가합니다.
apply plugin: 'java'
configurations {
provided
}
sourceSets {
main {
compileClasspath += configurations.provided
}
}
dependencies {
provided 'com.google.guava:guava:18.0'
provided 'org.apache.commons:commons-lang3:3.3.2'
// Tests
testCompile 'junit:junit:4.11'
testCompile 'org.assertj:assertj-core:1.7.0'
// Additional test compile dependencies
testCompile 'joda-time:joda-time:2.2'
}
하나의 해결책은 testCompile
범위와 joda 시간 라이브러리와 같은 의존성을 추가하는 것입니다,하지만 난 어떤 항목을 복제하고 싶지 않아요. 나는 그것이 적절한 구성으로 달성 될 수 있다고 확신합니다.
두 구성을 사용하더라도 테스트를 실행할 수 없습니다. 예를 들어 Joda Time을 제공하고 어떤 구성을 사용하든 관계없이 'Gradle : error : package org.joda.time does not exist' – tomrozb
이 컴파일 또는 런타임 종속성이 있습니까? 컴파일 종속성 인 경우'sourceSets.test.compileClasspath + = configurations.provided'를 사용하여 원본 게시물에서 지정한 것처럼 지정해야합니다. –
여전히 작동하지 않습니다. 그것은 컴파일하지만 런타임 중에 java.lang.NoClassDefFoundError : org/joda/time/ReadableInstant'를 얻습니다. 응답에 게시 된 옵션으로 시도했지만 유일한 변경은'testRuntime.extendsFrom (제공됨) '이지만'java로 인해 충돌합니다. lang.NoClassDefFoundError : junit/textui/ResultPrinter' 아이디어가 있습니까? – tomrozb