为什么Maven获取错误的Jetty版本?

时间:2017-05-15 12:52:14

标签: java maven spring-boot

我正在使用spring boot并且具有以下依赖性。如果你看一下jetty依赖项,我希望它能用" 9.4.1.v20170120"来获取所有的jetty依赖项。后缀,但它提取错误的版本。我在另一个正确获取它的项目中使用相同的东西。请看一下图片。

pom.xml条目:

<properties>
    <java.version>1.8</java.version>
    <junit.version>4.11</junit.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>
</dependencies>

enter image description here

为什么会这样?

1 个答案:

答案 0 :(得分:3)

它是maven传递依赖性解析。

  

默认情况下,Maven使用nearest-wins解决版本冲突   策略

当解析依赖关系并且库之间存在冲突时,Maven选择更靠近根的库。在您的情况下,它是javax.servlet-api.3.1.0.jar

请参阅https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html