必须配置maven-assembly-plugin插件并指定mainclass和jar-with-dependencies,否则package生成的jar无法java -jar运行;需核对主类路径、重载pom.xml、验证长名称jar文件。

你需要在 IDEA 中用 Maven 的 package 命令生成一个能直接 java -jar 运行的可执行 Jar 包,但发现打出来的包双击报错“无法找到主类”或运行时提示“no main manifest attribute”,说明打包配置缺失或插件未生效,必须显式声明主类并合并依赖。
确认 pom.xml 已配置可执行 Jar 插件
打开项目根目录下的 pom.xml,检查
粘贴以下配置(替换 com.xxx.Application 为你真实的启动类全路径,例如 com.example.demo.DemoApplication):
【主类路径写错会导致最终 jar 无法运行,务必逐字核对包名+类名,大小写敏感】
执行 Maven package 命令生成 Jar
方法一:通过 IDEA 右侧 Maven 面板操作
点击右侧 Maven 工具窗口 → 展开当前项目 → 展开 Lifecycle → 双击 package。
方法二:使用 Terminal 执行命令
打开 IDEA 内置 Terminal,确保工作目录为项目根目录(含 pom.xml),输入:
mvn clean package
这一步会先清空 target 目录,再编译、测试(如有)、打包。成功后会在项目根目录下的 target/ 文件夹中生成两个 jar 文件:一个名字短(如 demo-1.0.jar),是普通 jar;另一个名字长(如 demo-1.0-jar-with-dependencies.jar),才是你要的可执行 jar。
注意:仅执行 package 不会把 jar 安装到本地仓库,也不会触发 install 阶段的额外动作,适合快速验证可执行性。
验证 Jar 是否真正可执行
第一步:打开终端,cd 进入 target 目录
第二步:执行命令 java -jar demo-1.0-jar-with-dependencies.jar(将文件名替换成你实际生成的长名称 jar)
如果控制台立即打印 Spring Boot 启动日志(如 “Starting DemoApplication…”),说明打包成功且主类识别正确。
如果报错“no main manifest attribute”,说明 pom.xml 中的 plugin 配置未生效——可能原因:XML 标签闭合错误、插件被注释、Maven 未重新加载 pom。此时需右键 pom.xml → Maven → Reload project。
如果报错“ClassNotFoundException”,说明依赖未正确合并,检查 descriptorRef 是否拼写为 jar-with-dependencies(不能漏掉 s,也不能写成 with-dependency)。











