我们的应用程序使用slf4j,但依赖于
问题是IDE经常从log4j导入类而不是从slf4j导入类。 理想情况下,我希望只有slf4j api作为我的应用程序的maven依赖项,并且仅在构建战争时将slf4j绑定到log4j。
到目前为止,我找到了几种解决方案:
是否可以只依赖slf4j api?如何将其他依赖项打包到war而不将它们声明为项目依赖项?
谢谢!
答案 0 :(得分:1)
请在运行范围内指定对slf4j-log4j的依赖。
因此,在编译和测试期间,来自运行时作用域的时间类将不可用。 同样在IDE中它不应该是可见的 - 我在IntelliJ中检查过它。
当然,所有具有运行时作用域的工件都将放在WEB-INF / lib目录中。
示例:
...
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
<scope>runtime</scope>
</dependency>
...