8

这是我的多模块项目的结构:

/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真正需要这些依赖项。我该如何解决这个问题?

4

2 回答 2

11

如果你给这些依赖一个runtime范围而不是 ,会发生compile什么?

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

编辑:您可能需要设置ignoreNonCompile选项:

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

于 2011-02-07T08:51:46.320 回答
0

您是否尝试将范围设置slf4j-log4j12log4j运行时?
查看Maven 依赖范围

于 2011-02-07T08:51:47.747 回答