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

IntelliJ中Spring Boot项目依赖报错:package不存在

问题分析与解决方案

核心问题

Spring Boot项目默认打包生成的是可执行JAR,这种JAR的类文件都存放在BOOT-INF/classes目录下,而普通Maven项目依赖时,编译器默认只会读取JAR根目录下的类文件,因此无法识别到项目A中的类,这就是编译报错“package ? does not exist”的根本原因。

解决方案

方案1:修改项目A的打包配置,生成可被依赖的普通JAR

在项目A的pom.xml中配置Spring Boot Maven插件,添加classifier参数,打包时会同时生成可执行JAR和普通依赖JAR:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <!-- 给可执行JAR添加后缀,比如exec,此时普通依赖JAR会使用默认文件名 -->
                <classifier>exec</classifier>
            </configuration>
        </plugin>
    </plugins>
</build>

执行mvn clean install重新打包安装项目A到本地仓库,然后在项目B的依赖中直接引用默认文件名的JAR即可(可执行JAR会带-exec后缀,无需依赖)。

方案2:在项目B中配置解压项目A的JAR内容

如果无法修改项目A的配置,可在项目B的pom.xml中使用Maven依赖插件,将项目A JAR中BOOT-INF/classes下的类文件解压到项目B的编译目录:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack-project-a</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <!-- 替换为项目A的实际groupId、artifactId、version -->
                                <groupId>com.example</groupId>
                                <artifactId>project-a</artifactId>
                                <version>0.0.1-SNAPSHOT</version>
                                <outputDirectory>${project.build.directory}/classes</outputDirectory>
                                <includes>BOOT-INF/classes/**/*</includes>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

执行mvn compile时,插件会自动解压项目A的类文件到项目B的编译路径,编译器即可识别。

方案3:清理IntelliJ缓存并重新导入Maven项目

  1. 点击File -> Invalidate Caches...,选择Invalidate and Restart,清除IntelliJ的本地缓存。
  2. 重启后,打开Maven工具窗口(View -> Tool Windows -> Maven),点击左上角的刷新按钮重新导入项目依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 00:11:03