使用Gradle将提供的依赖项添加到测试类路径

时间:2014-12-03 15:24:14

标签: java gradle build.gradle

provided依赖范围配置如下。我的问题是,在测试运行时期间提供的依赖项是不可见的。如何配置它以保持依赖项provided但在测试类路径上可用?

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-time库之类的依赖项,但我不想复制任何条目。我确信它可以通过适当的配置来实现。

2 个答案:

答案 0 :(得分:4)

有两种方法可以做到这一点。首先,让testRuntime配置从provided延伸。

configurations {
    provided
    testRuntime.extendsFrom(provided)
}

其次,您可以将provided配置添加到test任务的类路径中。

test {
    classpath += configurations.provided
}

答案 1 :(得分:2)

已修复configurations中的一行。不知道它是否是最好的和正确的解决方案,但按预期工作。

configurations {
    provided
    testCompile.extendsFrom(provided)
}