Java 调试Maven依赖性问题的提示

Java 调试Maven依赖性问题的提示,java,maven,Java,Maven,我们在我工作的大型企业IT部门使用Maven。即使我只需要添加一个新的依赖项,依赖项层次结构似乎也很快变得难以管理。对于代码库的小改动,我发现我花在调试Maven问题上的时间比实际代码要多。我正在寻找一些关于如何 更快地调试问题 如何设计新的软件以避免循环依赖的混乱网络,在pom.xml中放置排除项等等 谢谢 我建议您使用EclipseMaven插件(m2e)——它有一个优秀的图形依赖关系查看器,可以让您快速跟踪依赖关系冲突。它实际上提供了两个视图-树视图和“层次”视图。我更喜欢层次结构视图,因

我们在我工作的大型企业IT部门使用Maven。即使我只需要添加一个新的依赖项,依赖项层次结构似乎也很快变得难以管理。对于代码库的小改动,我发现我花在调试Maven问题上的时间比实际代码要多。我正在寻找一些关于如何

  • 更快地调试问题
  • 如何设计新的软件以避免循环依赖的混乱网络,在pom.xml中放置排除项等等

  • 谢谢

    我建议您使用EclipseMaven插件(m2e)——它有一个优秀的图形依赖关系查看器,可以让您快速跟踪依赖关系冲突。它实际上提供了两个视图-树视图和“层次”视图。我更喜欢层次结构视图,因为它允许您搜索和筛选可传递的依赖项并突出显示冲突。

    此命令应该是您最好的朋友:

    如何设计新的软件以避免循环依赖的混乱网络


    我恐怕没有明确而简单的答案,当然有很多方法,但我想说的是,如果你有一个专门的(团队/小型团队/一个人?)负责管理组织中所有Maven的东西,那就更好了。他们应该分析依赖关系,如果有任何向项目添加新依赖关系的请求,他们应该批准/拒绝它。

    我将给出以下关于解决maven依赖关系问题的建议。首先,我将利用命令行中的
    mvn依赖项:tree
    目标。这将为您提供一个良好的依赖关系树,并使您更容易找出某些版本冲突(即Hibernate使用的log4j版本与您的slf4j依赖关系冲突)。作为一种可视化循环依赖关系的好方法,用于Eclipse的m2eclipse插件有一些非常好的可视化实用程序来帮助您解决这个问题。最后,我建议通过利用
    功能在根pom.xml中定义项目依赖项的版本,以便在一个地方管理所有版本,这将允许子pom.xml文件仅声明

    ,这是一个很棒的工具。谢谢“mvn dependency:tree”工具很不错,但不像它提供的GUI视图那么容易阅读。我有点认为没有灵丹妙药,我的问题的答案验证了这一点。因此,基本上没有什么可以替代特定设计模式之外的组织过程来保持事物的有序性。这基本上就是你说的吗?