2011-02-07 44 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

相关问题