2011-02-07 57 views
8

這是我的多模塊項目的結構:如何告訴maven-dependency-plugin該項目中使用了工件?

/root 
    /api dependencies: slf4j 
    /foo dependencies: slf4j-log4j12, log4j 

換句話說,模塊api使用slf4j進行日誌記錄。它不知道測井設施的實施情況。爲了實現日誌記錄,模塊foo增加了slf4j-log4j12log4j。很簡單。

現在我正在maven-dependency-plugin:analyze-only,這就是它說的模塊foo

[WARNING] Unused declared dependencies found: 
[WARNING] org.slf4j:slf4j-log4j12:jar:1.6.1:compile 
[WARNING] log4j:log4j:jar:1.2.16:compile 

含義,該插件不明白,foo真正需要這些依賴關係。我該如何解決這個問題?

+0

爲什麼在Maven完成依賴管理時添加另一個管理依賴關係的模塊?這是Maven的最強點 – 2011-02-07 08:37:44

回答

10

如果你給那些依賴關係一個runtime範圍,而不是compile會發生什麼?

如果您將他們定義爲編譯時依賴,我認爲依賴插件會認爲他們需要在編譯時,他們真的不。但是在運行時你只需要slf4-log4j和log4j JAR文件。

編輯:您可能需要設置ignoreNonCompile選項:

http://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html

+0

好主意,但結果是一樣的:( – yegor256 2011-02-07 09:09:17

+1

@ yegor256我剛編輯我的答案。有對分析任務的「ignoreNonCompile」標誌,你可能需要設置。 – 2011-02-07 09:12:46

相關問題