如何告诉maven-dependency-plugin工件中使用了工件?

时间:2011-02-07 08:34:38

标签: java maven-2 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确实需要这些依赖项。我该如何解决这个问题呢?

2 个答案:

答案 0 :(得分:10)

如果您为这些依赖项提供runtime范围而不是compile,会发生什么?

如果你已经将它们定义为编译时依赖项,我认为依赖插件会认为编译时需要它们,而实际上并非如此。但是你只需要在运行时使用slf4-log4j和log4j JAR文件。

修改:您可能需要设置ignoreNonCompile选项:

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

答案 1 :(得分:0)

您是否尝试将slf4j-log4j12log4j的范围设置为运行时?
maven dependency scope