jar中没有主清单属性【解决办法】

本文介绍如何在Maven项目中配置编译插件和Spring Boot插件,包括设置Java版本和打包方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在pom文件中,添加如下即可


            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
 

### Spring Boot 项目打包后 JAR 文件缺少主清单属性的解决方案 当遇到 `Spring Boot` 打包后的 JAR 文件缺少主清单属性的问题时,通常是因为未正确配置 Maven 插件来指定入口类以及如何处理依赖项。以下是详细的解决办法: #### 修改 POM 文件并添加必要的插件 为了确保生成的 JAR 文件具有正确的主清单属性,需在项目的 `pom.xml` 中加入以下片段[^3]: ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ``` 上述代码中的 `<spring-boot-maven-plugin>` 是核心部分,它负责设置主类并将所有依赖嵌入到最终的可执行 JAR 文件中。 #### 使用 Maven 命令重新构建项目 完成以上更改后,通过命令行工具运行以下指令以重新打包项目[^4]: ```bash mvn clean package ``` 此操作会清理旧版本的目标文件夹,并基于更新后的配置创建新的 JAR 文件。 #### 运行生成的 JAR 文件 成功打包之后,可以通过以下方式验证是否解决了主清单属性丢失的问题: ```bash java -jar target/your-application-name.jar ``` 如果一切正常,则不会再次看到关于“没有主清单属性”的错误提示[^2]。 #### 处理 NoClassDefFoundError 错误 (扩展阅读) 除了主清单属性外,在某些情况下还可能出现 `NoClassDefFoundError` 。这通常是由于一些外部库未能被打包进最终产物所致。对此情况的一个常见修复措施是在 pom.xml 添加如下参数[^1]: ```xml <configuration> <fork>true</fork> <mainClass>${start-class}</mainClass> </configuration> ``` 其中 `${start-class}` 应替换为你应用的实际启动类全限定名。 --- ### 总结 综上所述,要彻底消除因缺乏主清单属性而导致无法直接运行 spring boot jar 文件的现象,关键是确认 maven 构建脚本里包含了恰当定义好的 plugin 设置;同时对于更复杂的场景比如存在额外框架支持或者自定义加载器等情况也要特别留意可能引发其他类型的 runtime exception 如 no class def found error等问题的发生几率及其对应的预防手段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值