當我將SLF4J記錄器添加到我的代碼中時,出現一條錯誤消息:「類路徑包含多個SLF4J綁定」。在網站slf4j.org/codes上,它聲明我應該從類路徑中移除它們。但是,這兩個記錄器包含在我的maven依賴項中。我的整個maven依賴關係文件夾都包含在類路徑中。我並不負責進入Maven依賴關係的內容,因此它不是我編輯它的地方,所以它只在Maven依賴關係文件夾中有一個記錄器依賴關係。我可以指定Java程序,以便它只使用其中一個記錄器嗎?如何在有多個SLF4J綁定時使用SLF4J
EJAY
當我將SLF4J記錄器添加到我的代碼中時,出現一條錯誤消息:「類路徑包含多個SLF4J綁定」。在網站slf4j.org/codes上,它聲明我應該從類路徑中移除它們。但是,這兩個記錄器包含在我的maven依賴項中。我的整個maven依賴關係文件夾都包含在類路徑中。我並不負責進入Maven依賴關係的內容,因此它不是我編輯它的地方,所以它只在Maven依賴關係文件夾中有一個記錄器依賴關係。我可以指定Java程序,以便它只使用其中一個記錄器嗎?如何在有多個SLF4J綁定時使用SLF4J
EJAY
弄清楚哪些項目的依賴是包括SLF4J實現,那麼排除:
<dependency>
<groupId>other-group</groupId>
<artifactId>dependency-id</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<!-- or slf4j-jdk14, etc -->
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
謝謝大家的好評,但是我發現哪裏出了問題。這是我在Eclipse中設置的一些設置,它提供了警告。它基本上讀取pom.xml文件兩次,因此兩次調用slf4j實現,這就是爲什麼它給了我一個警告。這很有意義,因爲我的同事使用相同的pom.xml,他的記錄器工作正常。 –
@Ejay很高興你解決它。您應該將其作爲答案發布,然後接受它。 – artbristol
如果你一定不能調整現有的Maven依賴關係來解決這個問題,你可以確保你的SLF4J在classpath中出現的結合首先,作爲第一個結合是一個變用於多個綁定的情況。
但是,您仍然會收到警告,但您的SLF4J記錄器將會被使用。
您也可以考慮利用maven模塊將項目分成多個部分,以便您可以在每個模塊的pom.xml文件中以不同方式管理每個部分中的依賴關係。
你能後的堆棧跟蹤也?看起來這只是一個警告。 –