如何修正「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中文網其他相關文章!