0

親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 に直接アクセスしているためです。もちろん、このスナップショット バージョンはリポジトリにデプロイされていないため、これが実際に使用できる唯一の方法です。

私は試した:

  1. 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>
    
  2. セクションでモジュールを使用する前に、そのプラグイン モジュールの依存関係を配置する

    <dependency>
      <groupId>org.grouplens.lenskit</groupId>
      <artifactId>lenskit-eval-maven-plugin</artifactId>
      <version>${lenskit.version}</version>
    </dependency>
    
  3. プラグイン自体に依存関係を追加します。

      <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>
    
  4. (0)、(1)、(2)を同時に使用する

わかりましたので、試み(2)がそれを押していることに気づきました。だから私の質問は、依存関係でもあるビルドセクションでプラグインを使用できる方法はありますか? もしそうなら、どのように?ソリューション (1) の使用が正しい場合、これは最初にローカル ワークスペースに解決する Eclipse の方法に問題がある可能性がありますか?

ティア

4

3 に答える 3

0

デフォルトのリポジトリからの maven2 の既存のアーティファクトはありません。明示的なレポを追加してみてください。そうしないと、このプラグインは maven2 には適していません (maven3 についてはこれを確認してください。問題はありません)。

于 2013-10-06T00:03:38.353 に答える
0
于 2013-10-06T17:31:42.927 に答える
0

プラグインは通常のリポジトリでは検索されないため、プラグインのスナップショット バージョンの POM に<pluginRepository>を追加する必要がある場合があります。settings.xml

アップデート

ローカルの Maven リポジトリは、 の下にあるオンライン リポジトリの自動作成されたキャッシュ バージョンです$HOME/.m2/repository

-SNAPSHOTセントラル リポジトリにデプロイされるバージョンは通常、明示的に設定する必要がある別のアドレスに保存されます。これを追加すると、POM/ にこれがない場合にスナップショット バージョンを使用するのに役立ちますsettings.xml

<pluginRepositories>
<pluginRepository>
  <id>sonatype-snapshots</id>
  <releases><enabled>false</enabled></releases>
  <snapshots><enabled>true</enabled></snapshots>
  <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</pluginRepository>
</pluginRepositories>
于 2013-10-06T10:43:44.747 に答える