首页 > 解决方案 > 使用maven编译时出错,找不到定义为依赖的jar中定义的类

问题描述

我正在学习 Spring Boot。我的 Spring Boot 项目由三个 Spring Boot 项目构成:api-rest、data 和 web。

pom.xml (parent)
api-rest
    pom.xml (generate war)
data
   pom.xml (generate jar)
web
   pom.xml (generate war)

api-rest项目具有定义模型和存储库的数据项目作为依赖项。当我从命令行编译时出现错误(我运行以下命令:mvn clean install):

api-rest: Compilation failure: Compilation failure: 
[ERROR] /src/main/java/com/example/mypacket/controller/CountryController.java:[4,60] cannot find symbol
[ERROR]   symbol:   class Country
[ERROR]   location: package com.example.mypacket.model

但是,使用 IntelliJ IDEA IDE 时不会观察到此错误,但会在 Spring 工具套件 IDE 中重现该错误。

为什么会出现命令行错误?

我检查了生成 IntelliJ 的战争是否包含与正确安装在本地 maven 存储库中的数据项目关联的 jar。数据项目与 maven 完美编译,其 jar 安装在本地存储库中。

Spring Boot 的版本是 2.4.5。

我注意到它生成的 JAR 具有 Spring Boot 结构。如果项目生成传统结构的JAR,则不会出现错误。

标签: spring-boot

解决方案


推荐阅读