親POMといくつかの子POMのセットで構成されるプロジェクトのオープンソースを使用しています。これらの子 POM は、ライブラリ、アーキテクチャ タイプ、およびプラグインを表します。このプラグインは、これらのさまざまな子モジュールに依存し、私のような依存プロジェクトのセクション内で使用されます。この Maven プロジェクトを Eclipse ワークスペースにインポートしました。
私自身のプロジェクトのPOM(Eclipseでも)では、依存関係を介してこれらのモジュールを問題なく参照できます。ただし、ビルド セクションでもプラグインを使用したいのですが、次の Maven2 エラーのため使用できません。
Project build error: Unresolveable build extension: Plugin org.grouplens.lenskit:lenskit-eval-maven-plugin:2.1-SNAPSHOT or one of its dependencies could not be resolved: Could not find artifact org.grouplens.lenskit:lenskit-eval-maven-plugin:jar:2.1-SNAPSHOT
これは、Eclipse の「ワークスペース プロジェクトからの依存関係の解決」を介して POM に直接アクセスしているためです。もちろん、このスナップショット バージョンはリポジトリにデプロイされていないため、これが実際に使用できる唯一の方法です。
私は試した:
lenskit-eval-maven-plugin の依存関係のいずれかを追加します。それらはいくつかありますが、プロジェクトのモジュールの 1 つだけを追加しました (他には maven-plugin-api のようなものが含まれます)。
<dependency> <groupId>org.grouplens.lenskit</groupId> <artifactId>lenskit-test</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency>
セクションでモジュールを使用する前に、そのプラグイン モジュールの依存関係を配置する
<dependency> <groupId>org.grouplens.lenskit</groupId> <artifactId>lenskit-eval-maven-plugin</artifactId> <version>${lenskit.version}</version> </dependency>
プラグイン自体に依存関係を追加します。
<build> <plugins> <plugin> <artifactId>lenskit-eval-maven-plugin</artifactId> <groupId>org.grouplens.lenskit</groupId> <!-- TODO --> <version>${lenskit.version}</version> <extensions>true</extensions> <dependencies> <dependency> <groupId>org.grouplens.lenskit</groupId> <artifactId>lenskit-eval-maven-plugin</artifactId> <version>${lenskit.version}</version> </dependency> </dependencies>
(0)、(1)、(2)を同時に使用する
わかりましたので、試み(2)がそれを押していることに気づきました。だから私の質問は、依存関係でもあるビルドセクションでプラグインを使用できる方法はありますか? もしそうなら、どのように?ソリューション (1) の使用が正しい場合、これは最初にローカル ワークスペースに解決する Eclipse の方法に問題がある可能性がありますか?
ティア