springboot项目使用插件jar打包成jar包运行显示没有主属性清单
时间: 2024-12-16 14:23:33 浏览: 5
当你在Spring Boot项目中尝试将插件JAR打包成独立的jar文件,并且这个jar没有包含`META-INF/MANIFEST.MF`文件,也就是主属性清单(Main-Class),可能会遇到"没有主属性清单"的问题。Spring Boot项目默认期望启动jar作为一个可执行程序,如果找不到指定的主类,它会抛出异常。
解决这个问题通常需要你在打包的时候手动添加manifest文件或者指定主类信息。如果你是在使用Maven或Gradle构建,可以参考以下步骤:
**对于Maven:**
1. 添加maven-assembly-plugin到pom.xml中,配置manifest文件:
```xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.yourpackage.YourMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<!-- ...其他插件... -->
</plugins>
</build>
```
2. 或者创建一个MANIFEST.MF文件,内容类似:
```text
Manifest-Version: 1.0
Main-Class: com.yourpackage.YourMainClass
```
**对于Gradle:**
1. 在build.gradle文件中添加对应的jar plugin配置:
```groovy
jar {
manifest {
attributes 'Main-Class': 'com.yourpackage.YourMainClass'
}
}
```
2. 或者直接在assemble task中添加manifest:
```groovy
task jar(type: Jar) {
from configurations.compile
// 其他配置...
manifest = project.file('src/main/resources/META-INF/MANIFEST.MF')
}
```
确保替换`YourMainClass`为你的主类全名。
完成这些设置后,再打包应该就能正常运行了。
阅读全文