1

Ant+Ivy から最近変換されたマルチモジュールの Maven プロジェクトがあります。モジュールの 1 つは、クラスパスでプラグインを探してロードするレガシー カスタム プラグ可能コンポーネントです。マルチモジュール プロジェクトの別のモジュールは、前述のプラグインによって実行されるプラグインの実装です。

Eclipse 実行構成からカスタム アプリケーション サーバーを実行する場合、各プラグインをクラスパスに含める必要があります。Eclipse ワークスペース内でビルドすると、これらのプラグインは jar にコンパイルされません。したがって、含める jar アーティファクトはありません。

Eclipse 実行構成でプラグイン モジュール プロジェクトを依存関係として追加すると、その推移的な依存関係 (Maven によって提供される) は継承されません。したがって、アプリケーション サーバーによってプラグインが検出されて読み込まれると、class not found 例外が発生します。

ここでの問題は、マルチモジュール プロジェクトのインポート時に、m2e プラグインが maven コンテナーをエクスポートするように設定しないことです。したがって、推移的な依存関係が欠落しています。

アプリケーションサーバーコンポーネントとそのプラグインの両方に「ワークスペースでビルド」を使用して、Eclipseで実行しながらこれを機能させる方法はありますか?

4

1 に答える 1

0

Ivy は単なる依存関係管理ツールであり、Apache Maven はソフトウェア プロジェクト管理です。

コンパイル、jarへのビルド、依存関係の検索、リンクなど、ソフトウェア開発のすべてのプロセスを処理できることを意味します。

クラスパスに jar を指定する必要はなく、代わりにローカル リポジトリに配置するか、pom.xml を編集してリモート リポジトリから取得します。

このリンクhttp://ant.apache.org/ivy/history/2.0.0/use/makepom.html

于 2012-05-16T09:09:12.243 に答える