spring-boot-dependencies 与spring-boot-starter-web冲突?

作者站长头像
站长
· 阅读数 6

我的项目root目录下pom文件添加了springboot的依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.6.3</version>
            <type>pom</type>
            <scope>import</scope>
</dependency>

前端的目录下pom中添加了,要用到@restcontroller

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.6.3</version>
        </dependency>

然后一堆包冲突,是不是我的做法有错误,还是版本问题?

回复
1个回答
avatar
test
2024-07-05

spring-boot-dependencies 和 spring-boot-starter-web 并不会发生冲突,它们分别是 Spring Boot 提供的依赖管理和 Web Starter,可以在一个项目中同时使用。

spring-boot-dependencies 是一个 Maven BOM(Bill of Materials),包含了所有 Spring Boot 项目中使用的依赖的版本信息,可以通过继承该 BOM 来轻松管理版本。它是一个空的 Maven 项目,只包含一个 pom.xml 文件,用于统一管理 Spring Boot 的依赖版本号。您可以在自己的项目中添加 BOM 依赖,例如:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>2.6.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

spring-boot-starter-web 则是 Spring Boot Web Starter,包含了一些常用的 Web 组件,比如 Spring MVC、Tomcat、Jackson 等。通过添加该依赖,可以快速构建基于 Spring MVC 的 Web 项目。您可以在 Maven 项目中添加如下依赖:

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
</dependencies>

如果您在添加 spring-boot-starter-web 依赖时发生冲突,可能是由于您在项目中同时添加了其他的 Web 框架、Servlet 容器或者 Spring Boot 的其他 Starter,这些依赖会导致版本冲突。您可以使用 mvn dependency:tree 命令查看项目依赖树,找到冲突的依赖,并将其排除或者升级版本。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容