我有一个要在test
范围内使用的依赖项(以便在我运行单元测试时它位于类路径中)和runtime
范围内(以便我可以在 WAR/EAR/其他打包中包含它以进行部署,但不影响依赖工件的传递依赖查找)。
一个真实的例子是 SLF4J 的实现 JAR(例如Logback
)。当我运行测试时,我希望它存在于类路径中,并且我希望它包含在我的 WAR/EAR 中,但我不希望依赖于我的项目的项目将其包含在传递依赖项查找中。
我尝试使用<scope>test,runtime</scope>
但 Maven 3 产生警告:
[WARNING] 'dependencies.dependency.scope' for org.slf4j:jcl-over-slf4j:jar
must be one of [provided, compile, runtime, test, system] but is 'test,runtime'.
在这种情况下声明依赖范围的正确方法是什么?