0
我希望提供一个api给我的客户端,它只需要slfj-api。但是当使用IDE的开发时,日志将使用slf4j-log4j12进行记录。如何使slf4j-log4j12仅在开发IDE时提供,maven
有没有办法用maven做到这一点。
我尝试将它声明为提供的范围,但它不起作用。
我希望提供一个api给我的客户端,它只需要slfj-api。但是当使用IDE的开发时,日志将使用slf4j-log4j12进行记录。如何使slf4j-log4j12仅在开发IDE时提供,maven
有没有办法用maven做到这一点。
我尝试将它声明为提供的范围,但它不起作用。
如果标记了SLF4J-log4j12依赖作为提供这样
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<scope>provided</scope>
</dependency>
然后在你的项目中的另一个依赖可能有SLF4J-log4j12作为传递依赖。尝试运行mvn dependency:tree
命令。这将向您显示您的每个依赖项的所有传递依赖项。如果slf4j-log4j12被拉入,你可以像这样排除它。
<!-- Dependency with slf4j-log4j12 as a transitive dependency -->
<dependency>
<groupId>my.project</groupId>
<artifactId>my.artifact</artifactId>
<version>1.9.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
也许你可以使用Maven的配置文件,然后只在配置文件中SLF4J-log4j12依赖和IDE激活你的个人资料。 –
你想在你的测试中使用slf4j-log4j12,或者在本地服务器上部署一个正在运行的应用程序/ j2ee应用程序? – Sammyrulez