首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Maven Shade Plugin 報錯 MainifestResourceTransformer 類找不到:拼寫錯誤導致

     編輯:程式設計疑難解答

錯誤信息

ClassNotFoundException: ... MainifestResourceTransformer

根本原因

配置中 implementation 屬性值拼寫錯誤:

<transformer implementation="org.apache.maven.plugins.shade.resource.**Mainifest**ResourceTransformer">

正確類名:**Manifest**(兩個 n)**ResourceTransformer**。少寫一個 `n` 導致類加載失敗。

修正配置

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-shade-plugin</artifactId>
  <version>3.4.1</version> <!-- 建議升級新版 -->
  <configuration>
    <transformers>
      <transformer implementation="org.apache.maven.plugins.shade.resource.**Manifest**ResourceTransformer">
        <mainClass>xx.xxx.xxx.hellomaven.App</mainClass>
      </transformer>
    </transformers>
  </configuration>
  <executions>
    <execution>
      <phase>package</phase>
      <goals><goal>shade</goal></goals>
    </execution>
  </executions>
</plugin>

其他常見坑

  • maven-compiler-plugin 版本由父 POM 或默認值決定,非 Shade 問題。
  • 主類全限定名需與代碼一致,區分大小寫。
  • 多模塊項目在打包模塊配置,父模塊不需配置。

驗證

mvn clean package
java -jar target/hello-maven-1.0-SNAPSHOT.jar
# 應正常啟動主類

總結

一字之差導致類找不到,Maven 插件配置對大小寫、拼寫極度敏感,仔細核對官方文檔類名。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved