是否有可能从maven中的一个项目中挑出依赖关系?

时间:2015-04-08 20:44:22

标签: java maven

我正在尝试入侵现有项目(让我们称之为bar)来测试我的项目(让我们称之为foo)。

所以在bar的pom中,我添加了foo的依赖关系。当我这样做时,bar中的所有现有测试都会失败,因为甚至没有启动(这些是进行数据库调用的一些集成测试)。我确信foo中存在一些依赖于bar疯狂的依赖。是否有一些命令或方法只显示在将foo添加到bar作为依赖项后被覆盖的依赖项?

2 个答案:

答案 0 :(得分:0)

如果您正在使用eclipse,请转到pom.xml上的依赖关系层次结构选项卡。 然后使用您不想要的依赖项,使用此构造:

    <exclusions>
        <exclusion>
        </exclusion>
    </exclusions>

此外,您可以添加<scope>test</scope>,它不会被添加到您的jar文件中(我认为)。

答案 1 :(得分:0)

我不认为Maven有任何内置功能会列出完全更改的依赖项。但是,您可以通过运行

来更好地了解所发生的变化
mvn dependency:tree

mvn dependency:analyze

关于项目。两者都将以不同的格式输出所有依赖项(直接和传递)的列表。运行这些一次,没有,并且一次更改,然后比较结果(确保根据需要重新排序结果,因为即使未更改的依赖项可能以不同的顺序列出)。这应该让你开始弄清楚改变了什么。


另外,请考虑是否存在与maven和依赖关系无关的问题。也许项目扫描类路径以进行依赖注入,并在其中一个新类上进行扼流?或者也许它通过反射做有趣的事情。不知道这是不是问题,只是试着保持开放的心态。