我基本上在寻找一种模仿maven依赖provided
的方法。我正在构建一个jar(db驱动程序的扩展),它依赖于另一个jar(db驱动程序),但我不想包含那个jar。
我可以使用compileOnly
来实现这一点,但是现在测试不会运行或编译,因为测试中不包含所需的jar。
我尝试了可用的依赖项列表,例如testCompile
,但是在编译时以及测试运行和编译时,我找不到使jar可用的那个。
我如何正确地包括那个罐子?
编辑:根据要求,build.gradle文件:
group 'com.mygroup'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compileOnly "org.mongodb:mongodb-driver:3.3.0"
testCompile "org.mongodb:mongodb-driver:3.3.0"
}
列出依赖关系两次确实有效,但显然不是一个非常好的解决方案
答案 0 :(得分:11)
您可以从testCompile
配置扩展compileOnly
配置:
configurations {
testCompile.extendsFrom compileOnly
}
答案 1 :(得分:0)
我使用以下内容;
sourceSets {
// Make the compileOnly dependencies available when compiling/running tests
test.compileClasspath += configurations.compileOnly
test.runtimeClasspath += configurations.compileOnly
}
这是比tynn的答案更长的行,但是使意图更清晰恕我直言,