問題描述
在運行使用maven打包的項目之后,運行項目發現主類沒有找到。提示XXX--1.0-SNAPSHOT.jar中沒有主清單屬性
。
問題原因
maven在打包時沒有配置主類。
解決方案
- 如果您使用的是Springboot框架,那么只需要在pom.xml中添加如下配置,會自動檢測主類。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- 如果你是其他項目,你需要手動定位到主類。假設有如下主類。
<build>
<finalName>{file_name}</finalName><!-- 導出jar的名字 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>{Mainclass}</mainClass>
<!-- 主類的位置,例如上圖文件,主類配置應為: -->
<!-- <mainClass>{top.nihilwater.App}</mainClass> -->
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
再次運行成功:
參考文章:
https://blog.csdn.net/qq_40299028/article/details/90052774
https://blog.csdn.net/weixin_39448458/article/details/107508646