ビルドを Ant から Maven に移行中です。「コード ジェネレーター」をコンパイルするために使用される Ant ビルドは、Java および C コードのセットを生成するこの「コード ジェネレーター」を実行します。次に、生成された Java コードを取得し、いくつかの追加コードとともにコンパイルして、単一の jar を生成します。
これをMavenで簡単に複製しました。コマンドラインから実行するとうまく機能しますが、Eclipseは文句を言い、pomファイルに関連するエラーを私に与えています
{group.id}:{artifact.id}:pom:1.0.0-SNAPSHOT が http://{内部サイト リポジトリ}/nexus/content/groups/public で見つかりませんでした。ローカル リポジトリにキャッシュされました。スナップショットの更新間隔が経過するか更新が強制されるまで再試行しない
group.id と artifact.id は、コード ジェネレーター プラグインのグループ ID とアーティファクト ID です。
また、生成されたコードを参照するコードもコンパイルに失敗します。
私のmavenビルドはで構成されています
コード ジェネレーターの Java コードのみを含むジェネレーター プロジェクト。
ジェネレーターを Maven プラグインとしてラップするコードのみを含むジェネレーター プラグイン プロジェクト。これは、ジェネレータ プロジェクトに依存します。
プラグインを使用してコードを生成する xyz プロジェクト。コードは、このプロジェクトの target/generated-sources/xxx フォルダーに配置されます。この追加のソース ディレクトリを含めるために、複数の src ディレクトリを使用して Maven コンパイルに従って build-helper-maven-plugin を構成しました。
生成されたソース フォルダーを手動で Eclipse ビルド パスに追加すると、そこにないコードに関連するすべてのエラーがそのプロジェクトでは消えますが、ダウンストリーム プロジェクトでは消えず、上記の "Failure to find..." エラーは残ります。
私を少し困惑させているのは、実際にはジェネレータープラグインが maven プラグインとして定義されているのに ...:pom:1.0.0-SNAPSHOT を参照していることです。
これは賢明なアプローチですか?
「Failure to find...」エラーが表示されるのはなぜですか?
Eclipse が生成されたソース フォルダーを取得しないのはなぜですか?
また、Eclipse IDE に m2e プラグインと build-help-maven-plugin 用の m2e コネクタがインストールされていることも忘れてはなりません。