如何从最终工件(jar)中排除依赖项,但是在gradle中编译和运行单元测试时需要使用该依赖项

时间:2019-03-11 04:23:02

标签: gradle

在对该项目进行编译或运行单元测试时,我需要使用一个依赖项,但是我不想将其包含在我的最终工件(一个jar文件)中,因为在使用时我会在类路径中指定此依赖项“ java xx.jar”命令来运行它。以下是我在build.gradle中的当前配置。

配置{     提供的运行时     runtime.exclude模块:“ dependencyA” }

依赖项{     编译('groupA:dependencyA:versionX') }

以上设置可以确保在编译项目时使用dependencyA函数,也可以从最终的jar文件中排除dependencyA。但是,在运行单元测试时,由于已将其排除在外,因此无法找到dependencyA。 如何在运行单元测试的过程中包括dependencyA,同时如何从最终的jar文件中排除dependencyA?

1 个答案:

答案 0 :(得分:1)

更简单的解决方案是执行以下操作:

dependencies {
    // Makes the dependency appear _only_ on compileClasspath
    compileOnly('groupA:dependencyA:versionX')
    // Makes the dependency appear _only_ on testRuntimeClasspath
    testRuntimeOnly('groupA:dependencyA:versionX')
}

有关java插件可用的不同配置的说明,请参见the documentation