You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot项目依赖引用报错:目标包不存在如何解决?

解决Spring Boot项目依赖找不到GeneratedClasses包的问题

核心原因

Spring Boot自带的spring-boot-maven-plugin默认会把项目打包成可执行的fat jar,这种jar的内部结构和普通依赖jar不一样,项目类会被放到BOOT-INF/classes目录下,其他项目依赖时无法直接识别这些类,这就是你遇到包不存在错误的关键原因。

分步解决方法

1. 调整IOP项目打包配置,生成可被依赖的普通jar

修改IOP项目的pom.xml,给spring-boot-maven-plugin添加配置,让它同时生成可执行jar和用于依赖的普通jar:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <!-- 生成带exec后缀的可执行jar,同时保留不带后缀的普通依赖jar -->
                <classifier>exec</classifier>
            </configuration>
        </plugin>
    </plugins>
</build>

配置完成后,在IOP项目下执行mvn clean install,会生成两个jar文件:一个带-exec后缀的可执行jar,一个不带后缀的普通jar(这个就是给ExternalAPI依赖用的)。

2. 确保GeneratedClasses被正确编译打包

如果GeneratedClasses是自动生成的代码,要确认maven编译阶段能识别到这个目录:

<build>
    <sources>
        <source>src/main/java</source>
        <!-- 把自动生成代码的目录加入编译源 -->
        <source>target/generated-sources/GeneratedClasses</source>
    </sources>
</build>

之后可以打开IOP生成的普通jar,检查里面是否存在com/example/IOP/GeneratedClasses目录及对应的class文件。

3. 核对ExternalAPI的依赖配置

确保依赖的groupId、artifactId、版本号和IOP项目的pom.xml完全一致:

<dependency>
    <groupId>com.example</groupId>
    <artifactId>IOP</artifactId>
    <version>你的项目版本号</version>
    <!-- 这里不需要加classifier,因为我们依赖的是不带后缀的普通jar -->
</dependency>

4. 清理缓存重新构建

  • 删除本地maven仓库中IOP项目的缓存目录(一般路径是~/.m2/repository/com/example/IOP)
  • 重新在IOP项目执行mvn clean install
  • 最后在ExternalAPI项目执行mvn clean install

额外检查点

  • 确认包名拼写:错误提示里的ExternalAPIControlers是不是多了一个s(正确应该是Controllers?),包名拼写错误也会导致找不到。
  • 检查IOP项目的packaging配置:如果是pom类型,要改成jar。

内容的提问来源于stack exchange,提问作者learningProgrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 06:55:00