首頁 >Java >java教程 >從命令列運行時如何修復 Maven 依賴項上的'NoClassDefFoundError”?

從命令列運行時如何修復 Maven 依賴項上的'NoClassDefFoundError”?

Barbara Streisand
Barbara Streisand原創
2024-10-25 09:07:02300瀏覽

How to Fix

如何修正「Maven 依賴項上的NoClassDefFoundError」

嘗試從命令列執行Maven 專案時,您可能會遇到NoClassDefFoundError表示缺少所需的依賴項。

此錯誤的主要原因是 Maven 不會自動在其建置的 JAR 檔案中包含依賴項。要解決此問題,您需要將庫代碼「遮蔽」到輸出 JAR 檔案中。

要實現此目的,您可以使用 maven-shade-plugin。以下是將其新增至 POM 的方法:

<code class="xml"><project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.5.2</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project></code>

此外掛程式將自動建立一個包含您的類別和庫依賴項的「uber-JAR」。

註冊外掛程式後,您可以執行以下命令:

<code class="sh">$ mvn package
$ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App</code>

如果錯誤仍然存在,您可以進一步配置陰影外掛程式以指定應包含哪些JAR,或為可執行JAR 檔案設定Main-Class。請參閱 maven-shade-plugin 文件以獲取更多資訊。

以上是從命令列運行時如何修復 Maven 依賴項上的'NoClassDefFoundError”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn