在Maven中,我如何发现依赖于特定依赖的内容?

问题描述 投票:2回答:2

我有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,但我希望这没关系,因为它有大部分可用的命令。

java linux maven maven-3
2个回答
4
投票

我认为这应该对你有帮助(取自Resolving conflicts using the dependency tree

mvn dependency:tree -Dverbose -Dincludes=velocity

如果这没有帮助,我宁愿过滤依赖grep(取自Filtering the dependency tree

mvn dependency:tree -Dincludes=velocity:velocity

0
投票

cheffe's answer是一个很好的。

除此之外,我使用的另一个解决方案通常涉及egrep,基本上当我想看到更大的图片时。

mvn dependency:tree -Dverbose | egrep --color 'velocity|$'

优点:

  • 彩色输出
  • 单词的部分匹配(因为它只是grep)。

缺点:

  • 输出的冗长
© www.soinside.com 2019 - 2024. All rights reserved.