我有一个 Maven 项目,它具有以下直接依赖关系:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
<scope>compile</scope>
<optional>false</optional>
</dependency>
但尽管如此,mvn dependency:tree
节目slf4j-api
版本选择为1.6.2
,并且直接依赖于我的项目!
我的项目中还有其他依赖项可能依赖于其他版本的slf4j
. 但我的理解是选择最接近树根的版本。
slf4j
对相关内容的其他依赖是org.slf4j:jul-to-slf4j:jar:1.7.5:compile
,org.slf4j:log4j-over-slf4j:jar:1.7.5:compile
(直接依赖)和org.slf4j:jcl-over-slf4j:jar:1.7.3:runtime
(传递依赖)
我正在这个 maven 项目中构建一个,包含war
的 jar在存档中。我不知道该怎么做才能确保我得到 jar 版本而不是.slf4j
1.6.2
1.7.5
1.6.2
更新:我正在使用 maven 3.0.4
。
更新 2:根据要求,添加了 pom 和调试日志。由于文件很大,我已将其添加到保管箱公共文件夹:https ://www.dropbox.com/sh/w1rtgvxvnt4jf18/lbiMIgwWD_