2012-01-31 74 views
12

我的Maven項目有七個子模塊。其中六個包裝爲JAR,一個包裝爲WAR。如何在多模塊Maven項目中配置slf4j + logback?

我應該在每個模塊中創建單獨的logback.xml配置嗎?還是應該有一個所有其他模塊依賴的「通用」模塊,並在其中放置一個logback.xml?還有其他選擇嗎?

謝謝。

回答

11

所有的庫JAR應該只使用slf4j-api依賴關係,並且只有最終的應用程序(在你的情況下它是.war)應該包含logback依賴關係及其配置。

出於測試目的,我認爲更容易使<scope>test</scope>依賴於slf4j-simple,它更容易使用,並且通常是測試用例不夠好。

+0

的確,用於廣泛分發的庫應該僅依賴於slf4j-api。但是,並非所有的罐子都是圖書館。因此,儘管取決於slf4j-simple是一個有效的選項,但它不一定是比取決於logback-classic更好的選項。 – Ceki 2012-02-01 13:18:41

+0

@Ceki在'測試'你可以自由使用你想要的任何依賴。每個庫模塊都可以擁有自己的測試依賴關係,但它們不會發生衝突。因此,如果它夠了(通常是),使用'simple'來保持簡單。 – kan 2012-02-01 14:48:18

+0

使用測試範圍是個好主意。我只是說,取決於slf4j-simple(在測試範圍內)是可以的,但依賴於'jar'類型的模塊中的logback-classic(在測試範圍內)。 – Ceki 2012-02-01 18:24:28

2

假設您希望在包含jar包的模塊中添加logback.xml配置文件以進行測試,只需將logback.xml放置在每個'jar'類型的模塊中的src/test/resources文件夾下。

作爲@kan提到的,slf4j結合,例如, slf4j-simple或logback-classic應該在測試範圍內。