Spring Boot 2.7.0项目Maven打包提示“Package does not exist”求助
针对你遇到的Spring Boot 2.7.0 + Java 17应用引入本地JFrog仓库依赖后,IDEA识别正常但mvn clean package报错的情况,可按以下步骤排查解决:
检查本地Maven仓库的依赖完整性
前往本地Maven仓库路径(默认~/.m2/repository/com/microservice/utils-starter/1.0.0),确认对应的jar包存在且未损坏。同时检查推送至JFrog的utils-starter依赖是否正确包含编译后的class文件——比如确认该依赖的pom.xml中配置了maven-compiler-plugin并指定Java 17作为编译版本。若依赖异常,可删除本地仓库中utils-starter目录,执行mvn clean install -U强制重新拉取。对齐IDEA与命令行的Maven配置
很多时候IDEA使用的Maven(内置或自定义)与命令行环境的Maven不是同一个,导致仓库配置不一致:- 在IDEA中打开
Settings -> Build, Execution, Deployment -> Build Tools -> Maven,查看Maven home path; - 在命令行执行
mvn -v,对比两者的Maven路径是否一致; - 同时检查两者的
settings.xml,确保JFrog仓库已正确配置在命令行的Maven配置中,避免IDEA用了单独配置的仓库,而命令行Maven无法拉取依赖。
- 在IDEA中打开
确认依赖的打包类型与范围
检查utils-starter的pom.xml,确保<packaging>为jar(而非pom),且未将依赖范围<scope>设置为provided或test——这两类范围的依赖在打包编译阶段不会被引入,会导致“Package does not exist”错误。你的应用依赖未指定scope,默认是compile,但仍需确认依赖本身的配置是否正常。统一Java编译版本
确保应用和utils-starter的maven-compiler-plugin都指定了Java 17作为编译版本,避免版本不兼容导致的编译问题。示例配置:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>17</source> <target>17</target> <encoding>UTF-8</encoding> </configuration> </plugin>清理缓存
- 在IDEA中执行
File -> Invalidate Caches...,勾选Clear file system cache and local history后重启IDEA; - 命令行执行
mvn clean,并删除本地Maven仓库下的_remote.repositories和resolver-status.properties文件,清除Maven缓存的仓库状态。
- 在IDEA中执行
验证依赖树
执行mvn dependency:tree,查看输出中是否包含utils-starter依赖。若未找到,说明Maven未拉取到该依赖,需重新检查仓库配置和依赖坐标(groupId/artifactId/version)是否完全匹配。
内容的提问来源于stack exchange,提问作者Navigator

