Java 为什么Maven获取了错误的Jetty版本?
我使用的是spring boot,并且有以下依赖项。如果您查看Java 为什么Maven获取了错误的Jetty版本?,java,maven,spring-boot,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>
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>
1.8
4.11
org.springframework.boot
为什么会发生这种情况?这是maven可传递依赖项解析
默认情况下,Maven使用最近的wins解决版本冲突
策略
在解决依赖关系时,如果库之间存在冲突,Maven会选择更靠近根的库。在您的例子中,它是javax.servlet api.3.1.0.jar
请参见也许您已经在您的父版本中定义了此版本。您是否在任何地方指定了具有版本的依赖项?我已经尝试使用与您相同的依赖项,但我没有遇到这种情况。你能试着删除所有maven repo和redownload依赖项吗?我不认为这是正在发生的事情spring boot starter父级
包括屏幕截图中显示的所有Jetty模块的依赖关系管理,因此它们都应该具有9.4.1.v20170120版本,但其中也有一些9.3.11模块。这告诉我某些东西(父项或另一个导入的bom表)正在管理某些版本Mike..你的回答给了我方向。实际上,是来自父pom的eclipse jetty服务器依赖性导致了这个问题。我通过手动将所需的jetty版本放在dependencymanagement标记下解决了这个问题。谢谢你忍受痛苦…我感谢你