Maven 问题:在使用SpringBootStarterParent2.0.x时,我必须为依赖项指定版本号

Maven 问题:在使用SpringBootStarterParent2.0.x时,我必须为依赖项指定版本号,maven,spring-boot,pom.xml,Maven,Spring Boot,Pom.xml,注意:我不是从头开始写这个pom.xml的,这个项目是由其他人启动的 我不必为一些具有SpringBootStarter父级的依赖项指定版本。也就是说,如果是1.5.x版。如果我将版本号更改为2.0.x,它会开始抱怨缺少依赖项的版本号 我在某个地方读到,spring框架bom依赖项也可以确保我不必指定版本号,但是注释它并没有什么区别(也就是说,当版本设置为1.5.x时,没有它一切都可以工作)。显然,它也应该设置为“导入”以外的其他内容,但我真的对此一无所知(我自己没有添加此项) 这是我在运行mv

注意:我不是从头开始写这个pom.xml的,这个项目是由其他人启动的

我不必为一些具有SpringBootStarter父级的依赖项指定版本。也就是说,如果是1.5.x版。如果我将版本号更改为2.0.x,它会开始抱怨缺少依赖项的版本号

我在某个地方读到,spring框架bom依赖项也可以确保我不必指定版本号,但是注释它并没有什么区别(也就是说,当版本设置为1.5.x时,没有它一切都可以工作)。显然,它也应该设置为“导入”以外的其他内容,但我真的对此一无所知(我自己没有添加此项)

这是我在运行mvn dependency:tree时从maven获得的输出:

[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[WARNING] 'dependencies.dependency.scope' for org.springframework:spring-framework-bom:pom must be one of [provided, compile, runtime, test, system] but is 'import'. @ line 24, column 20
[ERROR] 'dependencies.dependency.version' for org.hibernate:hibernate-validator:jar is missing. @ line 53, column 21
 @ 
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project no.numbershopper:numbershopper:0.1.3 (/Users/rune/src/server/pom.xml) has 1 error
[ERROR]     'dependencies.dependency.version' for org.hibernate:hibernate-validator:jar is missing. @ line 53, column 21
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
这是pom.xml(我只将parent内部的版本更改为2.0.5.RELEASE):


4.0.0
不,号码牌
数字料斗
0.1.3
org.springframework.boot
spring启动程序父级
2.0.5.1发布
org.springframework
spring框架bom表
4.3.5.1发布
聚甲醛
进口
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧启动装置
org.thymeleaf.extras
thymeleaf-extras-Java8时间
3.0.1.1发布
org.springframework.boot
春季启动邮件
org.springframework.boot
弹簧靴开发工具
真的
org.hibernate
休眠验证器
javax.validation
验证api
1.1.0.1最终版本
javax.servlet
javax.servlet-api
3.1.0
假如
文件上传
文件上传
1.3.1
org.flywaydb
飞道核心
4.2.0
org.springframework.boot
spring引导启动器数据jpa
mysql
mysql连接器java
org.springframework.boot
弹簧起动试验
测试
org.springframework.boot
spring引导配置处理器
真的
org.springframework.boot
弹簧启动安全
org.apache.commons
commons-lang3
3.6
org.apache.commons
公共文本
1.1
org.springframework.security
spring安全内核
4.2.2.1发布
org.xhtmlender
飞碟pdf
9.1.9
org.imgscalr
imgscalr库
4.2
朱尼特
朱尼特
4.12
测试
org.springframework
弹簧试验
测试
1.8
3.0.1.1发布
3.0.2.1发布
2.1.1
org.springframework.boot
springbootmaven插件
com.microsoft.azure
azure webapp maven插件
1.3.0
maven项目
${project.artifactId}
西欧
1.8
战争
src/main/resources

Spring Boot 1.5使用Hibernate Validator 5,而Spring Boot 2使用Hibernate Validator 6。Hibernate Validator 6的一个变化是它现在位于一个名为
org.Hibernate.Validator
的单独组中,而不是位于
org.Hibernate

您需要更新Hibernate验证程序依赖项以反映新的组ID:

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
</dependency>

org.hibernate.validator
休眠验证器

或者,您可以完全删除依赖项,因为它是
spring boot starter web的一部分,您也依赖它。

spring框架已经是spring boot父项的一部分。因此无需进行补充bom导入…好的,很高兴知道。
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
</dependency>