我有this problem,我认为它是由某些库传递的,取决于旧版本的速度。我的pom明确要求速度的正确版本,但是我认为其他一些依赖关系正在传递速度的旧版本,并且此依赖项已在我的类路径中使用。

我知道mvn dependency:tree,但是在一个复杂的项目中,它可以输出非常高大,难以阅读的树。例如,它比我想找出取决于速度1.5的原因要多。

因此我想出了“抢救”。但这没有帮助,因为我得到了以下输出:

$ mvn dependency:tree | grep velocity
[INFO] |  |  +- velocity:velocity:jar:1.5:compile
[INFO] |  |  |  +- velocity:velocity:jar:1.5:compile
[INFO] |  |  |  +- velocity:velocity:jar:1.5:compile
[INFO] +- org.apache.velocity:velocity:jar:1.6.3:compile
[INFO] +- org.apache.velocity:velocity-tools:jar:2.0:compile
[INFO] |  +- velocity:velocity:jar:1.5:compile
[INFO] |  |  +- velocity:velocity:jar:1.5:compile
[INFO] +- org.apache.velocity:velocity-tools:jar:2.0:compile
[INFO] |  \- org.apache.velocity:velocity:jar:1.6.3:compile (version managed from 1.6.2)
[INFO] |  |  |  +- velocity:velocity:jar:1.5:compile
[INFO] |  +- org.apache.velocity:velocity-tools:jar:2.0:provided
[INFO] |  |  \- org.apache.velocity:velocity:jar:1.6.3:provided (version managed from 1.6.2)
[INFO] |  |  |  +- velocity:velocity:jar:1.5:provided
[INFO] |  +- org.apache.velocity:velocity-tools:jar:2.0:provided
[INFO] |  |  \- org.apache.velocity:velocity:jar:1.6.3:provided (version managed from 1.6.2)
[INFO] |  +- org.apache.velocity:velocity-tools:jar:2.0:provided
[INFO] |  |  \- org.apache.velocity:velocity:jar:1.6.3:provided (version managed from 1.6.2)
[INFO] |  |  |  +- velocity:velocity:jar:1.5:compile
[INFO] |  +- org.apache.velocity:velocity:jar:1.6.3:compile (version managed from 1.6.3)
[INFO] |  +- org.apache.velocity:velocity-tools:jar:2.0:compile (version managed from 2.0)
[INFO] |  |  +- velocity:velocity:jar:1.5:compile

我无法确定真正取决于那里的第一速度1.5。 maven是否为dependency:tree提供了一些参数以使我的生活更轻松?还是我可以在shell命令中使用一些巧妙的技巧来解决这个问题?我正在使用cygwin btw,但我希望这没关系,因为它具有大多数可用的命令。

最佳答案

我认为这应该对您有帮助(摘自Resolving conflicts using the dependency tree)

mvn dependency:tree -Dverbose -Dincludes=velocity

如果那没有帮助,我宁愿过滤依赖项而不是grep(取自Filtering the dependency tree)
mvn dependency:tree -Dincludes=velocity:velocity

10-06 14:13
查看更多