当前位置:首页 » 编程软件 » 微服务项目maven编译很慢

微服务项目maven编译很慢

发布时间: 2025-03-08 17:23:34

Ⅰ 引入swagger项目无法正常启动--微服务环境下

1.问题描述:

      使用alibaba微服务体系搭建的项目,模块管理使用的maven,给项目引入swagger做接口文档,启动时报错,报错信息如下:

2.问题解决

升级guava版本为20.0以上。

3.问题排查思路

首先,查看错误日志,错误日志中英文的大体翻译为,“尝试调用了一个不存在方法,发生的位置在 类中,下面这个方法不存在,可能方法存在....,guava-19.0.jar包中"

然后从错误日志中我们就可以分析出,由于guava-19.0这个jar引起的,并且报出的错误是某个方法不存在,那么我们就可以考虑到是这个jar的版本太低了,但是和swagger有什么关系那?那这个时候我们可以想到swagger有没有使用guava,打开编译器,查看swagger的包依赖关系:

使用idea的可以这样操作,右侧---》maven--->选中需要分析依赖的项目---》maven最上方有个show depenceies--->然后打开下面这张图--》左上角有个有 show conflicts--》红线就是有冲突的依赖--》放大就会发现如第二张图 swagger也依赖了guava,并且要求20.0的版本。

4.根本原因

maven的父子模块包依赖机制导致,父子项目依赖关系如下:

我们的项目就是在 父项目中引入的swagger,里面的swagger自己引入了20.0以上版本的guava使用,但是我们在子项目中又添加了如下依赖:

导致父项目的guava版本被覆盖成了19.0的低版本,所以无法找到swagger使用的某个方法了。

Ⅱ 如何使用 Maven 搭建 Spring Boot 父子项目

使用 Maven 搭建 Spring Boot 父子项目的步骤如下

  1. 创建父项目

    • 使用 Maven 命令行工具创建一个新的 Maven 项目作为父项目。
    • 在父项目的 pom.xml 文件中,设置 <packaging> 标签的值为 pom,这表示该项目是一个父 POM 项目。
    • 在父项目的 pom.xml 中定义公共的依赖管理,包括 Spring Boot Starter 依赖等。这些依赖不会被父项目直接引入,但会被子项目继承。
  2. 创建子项目

    • 在父项目的根目录下,为每个微服务创建一个新的 Maven 子模块。
    • 每个子模块的 pom.xml 文件需要引用父项目的 pom.xml,通过 <parent> 标签指定父项目的坐标。
    • 在子项目的 pom.xml 中,根据需要引入具体的 Spring Boot Starter 依赖和其他必要的依赖。这些依赖将自动继承父项目中定义的版本,从而避免版本冲突。
  3. 构建和管理项目

    • 使用 Maven 的多模块构建功能,可以在父项目的根目录下执行 Maven 命令来构建所有子项目。
    • 通过在父项目的 pom.xml 中定义构建插件和配置,可以简化构建和部署过程。
    • 当需要更新依赖版本时,只需在父项目的 pom.xml 中更新相应的依赖版本,所有子项目都会自动继承并使用新的版本。

重点内容父项目:设置为 <packaging>pom</packaging>,管理公共依赖。 子项目:通过 <parent> 标签引用父项目,继承父项目的依赖管理。 构建:在父项目根目录下执行 Maven 命令,构建所有子项目。

按照这些步骤,你可以使用 Maven 搭建一个结构清晰、依赖管理方便的 Spring Boot 父子项目。

热点内容
scratch少儿编程课程 发布:2025-04-16 17:11:44 浏览:640
荣耀x10从哪里设置密码 发布:2025-04-16 17:11:43 浏览:368
java从入门到精通视频 发布:2025-04-16 17:11:43 浏览:86
php微信接口教程 发布:2025-04-16 17:07:30 浏览:310
android实现阴影 发布:2025-04-16 16:50:08 浏览:794
粉笔直播课缓存 发布:2025-04-16 16:31:21 浏览:346
机顶盒都有什么配置 发布:2025-04-16 16:24:37 浏览:213
编写手游反编译都需要学习什么 发布:2025-04-16 16:19:36 浏览:817
proteus编译文件位置 发布:2025-04-16 16:18:44 浏览:367
土压缩的本质 发布:2025-04-16 16:13:21 浏览:594