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