我希望在 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'.
在这种情况下,声明依赖范围的正确方法是什么?