我的Maven項目有七個子模塊。其中六個包裝爲JAR,一個包裝爲WAR。如何在多模塊Maven項目中配置slf4j + logback?
我應該在每個模塊中創建單獨的logback.xml配置嗎?還是應該有一個所有其他模塊依賴的「通用」模塊,並在其中放置一個logback.xml?還有其他選擇嗎?
謝謝。
我的Maven項目有七個子模塊。其中六個包裝爲JAR,一個包裝爲WAR。如何在多模塊Maven項目中配置slf4j + logback?
我應該在每個模塊中創建單獨的logback.xml配置嗎?還是應該有一個所有其他模塊依賴的「通用」模塊,並在其中放置一個logback.xml?還有其他選擇嗎?
謝謝。
所有的庫JAR應該只使用slf4j-api依賴關係,並且只有最終的應用程序(在你的情況下它是.war
)應該包含logback依賴關係及其配置。
出於測試目的,我認爲更容易使<scope>test</scope>
依賴於slf4j-simple
,它更容易使用,並且通常是測試用例不夠好。
假設您希望在包含jar包的模塊中添加logback.xml配置文件以進行測試,只需將logback.xml放置在每個'jar'類型的模塊中的src/test/resources
文件夾下。
作爲@kan提到的,slf4j結合,例如, slf4j-simple或logback-classic應該在測試範圍內。
的確,用於廣泛分發的庫應該僅依賴於slf4j-api。但是,並非所有的罐子都是圖書館。因此,儘管取決於slf4j-simple是一個有效的選項,但它不一定是比取決於logback-classic更好的選項。 – Ceki 2012-02-01 13:18:41
@Ceki在'測試 '你可以自由使用你想要的任何依賴。每個庫模塊都可以擁有自己的測試依賴關係,但它們不會發生衝突。因此,如果它夠了(通常是),使用'simple'來保持簡單。 –
kan
2012-02-01 14:48:18
使用測試範圍是個好主意。我只是說,取決於slf4j-simple(在測試範圍內)是可以的,但依賴於'jar'類型的模塊中的logback-classic(在測試範圍內)。 – Ceki 2012-02-01 18:24:28