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

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

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

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

最佳答案

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

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

关于gradle - 如何从最终工件(jar)中排除依赖项,但是在gradle中编译和运行单元测试时需要使用该依赖项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55095197/

10-14 15:40