java - 使用 Gradle 添加提供的依赖项来测试类路径

标签 java gradle build.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-time 库,但我不想重复任何条目。我确信通过正确的配置可以实现这一目标。

最佳答案

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

configurations {
    provided
    testRuntime.extendsFrom(provided)
}

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

test {
    classpath += configurations.provided
}

关于java - 使用 Gradle 添加提供的依赖项来测试类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27275402/

相关文章:

groovy - 如何加快 Gradle 依赖项解析或总体上提高性能?

Android Studio 3 + Gradle 4.0 + shrinkResources + libraryProject = 无法在项目中找到匹配的配置

android - Gradle DSL 方法未找到 : "classpath()"

android - 安装Google Play服务时出错,我在做什么错?

java - 过滤特定库的 gradle 配置

android-studio - 如何使 gradle.properties 机器独立

java - 将 bytes[] 更改为字符串

java - java中HashMap的ArrayList上的GroupBy

java - 如何将日语字符分类为汉字或假名?

java - BufferedWriter 表现得很奇怪