6

私はMavenが初めてで、初めてプロジェクトを構築しようとしています。apache lucene に依存するコードを書きたいと思います。これは、私が取得しようとしているmavenのアーティファクトのリストです。

各アーティファクトを明示的にリストする代わりに、特定のバージョンのすべてのアーティファクトに依存する方法はありますか? 私はこれを試しました:

<dependency>
  <groupId>org.apache.lucene</groupId>
  <artifactId>*</artifactId>
  <version>3.6.1</version>
</dependency>

エラーが発生しました

org.apache.lucene: :jar の値 ' ' の 'dependencies.dependency.artifactId' は、有効な ID パターンと一致しません。@ 19 行目、19 桁目

依存関係を明示的に指定すると、依存関係をダウンロードできることを確認できます。IEこれはうまくいきます:

<dependency>
  <groupId>org.apache.lucene</groupId>
  <artifactId>lucene-core</artifactId>
  <version>3.6.1</version>
</dependency>

lucene のすべてに依存するのはおそらく最適ではないことはわかっていますが、手早く汚いことを行うために、これらすべての小さな lucene ライブラリを手動で作成する必要はありません。mavenで関連する依存関係の大規模なセットを取得するための典型的な方法は何ですか?

4

2 に答える 2

5

簡単な答え:できません。これを一度行うだけで、後で依存関係をコピーして貼り付けることができます(あまりDRYではありません)。また、必要なすべての依存関係を含むスケルトンをすばやく作成するアーキタイプを作成することも検討してください (迅速でダーティなプロジェクトの場合)。

より長い答え: まあ、あなたはそれを回避することができます。別のものを作成しますpom.xml

<packaging>pom</packaging>

そこですべての Lucene 依存関係を手動で宣言します。これを最後にきっぱりと。pom.xml後で、依存関係を(つまり、そこに定義された // に) 追加するだけで、その .xml のすべての依存関係を推移的に含めることgroupIdができartifactIdます。versionpom.xml

推移性について言えば、maven の JAR に依存していて、その JAR に他の依存関係がある場合、その推移的な依存関係を暗黙的に取得します。Lucenepomを調べてください。おそらく、それらのいくつかをインポートして、推移的な依存関係に依存するだけで十分でしょうか?

于 2012-12-07T22:59:36.323 に答える