SpringBoot项目启动 Maven构建 - 找不到主清单

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

添加maven-plugin插件,并将goal设为repackage

### 解决 `java -jar` 报错无主类清单属性的方法 当尝试通过 `java -jar` 运行 JAR 文件时遇到错误提示 "no main manifest attribute" 或者 "no main-class manifest attribute missing" 表明该JAR文件缺少必要的清单(manifest)配置来指明哪个类含有入口方法 `public static void main(String[] args)`。 #### 方法一:手动添加 Main-Class 属性到 MANIFEST.MF 文件中 如果项目不是基于构建工具管理,则可以手工编辑位于 META-INF/MANIFEST.MF 的清单文件,加入如下内容: ```plaintext Main-Class: com.example.MainClass ``` 这里假设 `com.example.MainClass` 是包含 `main()` 函数的那个类全限定名[^1]。 #### 方法二:使用 Maven 构建并设置插件自动处理 Manifest 对于采用Maven作为依赖管理和构建系统的Java应用程序来说,可以通过调整pom.xml中的maven-jar-plugin配置来自动生成带有正确Manifest信息的可执行Jar包。具体做法是在项目的 pom.xml 中增加或修改 maven-jar-plugin 插件的相关配置项: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>com.example.MainClass</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` 这段XML片段会告诉Maven在打包过程中自动生成MANIFEST.MF,并且将指定的主类写入其中[^2]。 #### 方法三:利用 Spring Boot 打包特性 如果是Spring Boot应用的话,默认情况下创建的应用程序已经包含了合适的POM/Gradle脚本模板用于生成可独立运行(JAR/WAR)形式的服务端点。只需要确保启动类上有@SpringBootApplication解即可;而具体的打包操作可通过IDE内置功能或是命令行完成,比如mvn clean package之后产生的目标目录下的jar/war可以直接用java -jar 来启动[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值