NoClassDefFoundError の Shade プラグインによる依存関係の解決
Maven を初めて使用する場合、次の理由により Eclipse とコマンドラインの使用法の間に不一致が発生する可能性があります。依存関係の管理。 Eclipse 内で Maven プロジェクトの作成と依存関係の追加が成功したにもかかわらず、コマンド ライン経由でプロジェクトを実行すると NoClassDefFoundError.
が発生する可能性があります。デフォルトでは、Maven は依存関係を個別にパッケージ化し、コンパイルされた JAR ファイルに依存関係を含めません。この省略により、実行中にライブラリ クラスを見つけようとしたときに Java VM が失敗します。
クラスパスにライブラリを手動で追加する代わりに、maven-shade-plugin はより効率的なソリューションを提供します。アプリケーション クラスと必要なライブラリ コードを組み合わせる「uber-JAR」を作成します。
これを実装するには、次のプラグイン設定を POM に追加します。
<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>
この設定を追加した後、次のコマンドを再実行します:
$ mvn package $ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App
組み込みの JAR または実行可能 JAR ファイルの指定などの高度な構成オプションの場合は、 maven-shade-plugin Web サイトの「例」セクションを参照してください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3