Java 找出战争中的重复依赖

Java 找出战争中的重复依赖,java,maven-2,Java,Maven 2,有人能解释一下人们在战争中是如何获得不同版本的重复依赖关系的吗?也许可以举一些例子 我不能完全理解。Maven2具有可传递依赖项的依赖项中介 假设我有: A - B - C B - E 现在在项目X中,使用war打包,我添加了a和B作为依赖项 由于前面提到的依赖项中介,无论项目A中B的版本是什么,在war中,我都会看到一个B jar,它在X中声明了版本 这是因为maven将使用与我的项目最接近的依赖项的版本 那么,我错过了什么?人们是怎么搞砸的? 期待启示对于具有相同groupId和arti

有人能解释一下人们在战争中是如何获得不同版本的重复依赖关系的吗?也许可以举一些例子

我不能完全理解。Maven2具有可传递依赖项的依赖项中介

假设我有:

A
- B
- C

B
- E
现在在项目X中,使用war打包,我添加了a和B作为依赖项

由于前面提到的依赖项中介,无论项目A中B的版本是什么,在war中,我都会看到一个B jar,它在X中声明了版本

这是因为maven将使用与我的项目最接近的依赖项的版本

那么,我错过了什么?人们是怎么搞砸的?
期待启示

对于具有相同groupId和artifactId的冲突JAR,maven采用了来自最终声明的依赖项的版本

您可以使用依赖顺序。 只需更改项目X中A和B的依赖顺序

场景1:由于2.3之后添加了2.5,因此将打包2.5。

<dependencies>

        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.3</version>

        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.5</version>

        </dependency>

    </dependencies>
<dependencies>

            <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.5</version>

        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.3</version>

        </dependency>

    </dependencies>

org.glassfish.jersey.containers

.

需要澄清的是,在依赖关系树的更远处,传递依赖关系也会发生同样的情况。最接近该项目的是chosenDunno about WARs,但我看到人们很容易获得重复的依赖项。这与我的问题无关。你想在war中打包两个版本不同的罐子吗?是的。正如我所说,我不明白人们是如何遇到这个问题的,所以我想尝试重现它。我还讨论了可传递依赖项