4

会社用に最新バージョンの Nexus をセットアップしましたが、問題なく動作しています。サードパーティのリポジトリをいくつか追加しましたが、そのうちの 1 つに .index ファイルがありません。そのため、Nexus はインデックスを作成できず、ローカル Maven がそのリポジトリで deps を要求することもできないようです。確かに残念です。

dep を手動でダウンロードして、サードパーティの「ホストされた」リポジトリにインストールする以外に、これを回避する方法はありますか?

問題の Maven リポジトリ: http://wicketstuff.org/maven/repository

ありがとう!

4

2 に答える 2

4

Nexusで「リモートインデックスのダウンロード」を「False」に設定します。

次に、ローカルで「mvn-Ucleanpackage」を実行します。

于 2012-05-07T09:38:51.760 に答える
4

(編集:最初の回答を読み直したところ、完全に明確でも正確でもなかったと思うので、一部を明確にするために編集しています。さらに、OPには回答した​​いコメントも追加されています。)

そのため、Nexus はインデックスを作成できず、ローカル Maven がそのリポジトリで deps を要求することもできないようです。

「 Nexusはインデックスを作成できません」という意味がわかりません。リポジトリが Nexus インデックスを提供しない場合、そのコンテンツは「デフォルトでは」検索できません。しかし、Nexus は、アーティファクトがこのリポジトリからダウンロードされると、間違いなくインデックスを作成できます。2番目の部分に関して、「ローカルのmavenはそのリポジトリでdepを要求することもできません」、これは確かですか?

私にとって、Nexus Indices (Lucene インデックス) は、リポジトリを検索可能にするための「単なる」良いものですが、インデックス化されていないリポジトリは確かにプロキシできます (Nexus は、世界中のすべてのリポジトリが Nexus インデックスを提供することを期待できません)。したがって、実際にはセットアップに何か問題があるに違いありません。

wicket SNAPSHOTS を使用する場合、Nexus をセットアップし、以下に示す POM を使用しました。

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.samples.wicket</groupId>
  <artifactId>nexus-wicket-testcase</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>nexus-wicket-testcase</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>org.apache.wicket</groupId>
      <artifactId>wicket</artifactId>
      <version>1.5-SNAPSHOT</version>
    </dependency>
  </dependencies>
</project>

次に、http: //wicketstuff.org/maven/repositoryを Nexus のスナップショットリポジトリとして追加し、 Public Repositoriesグループにリストしました。最後に、Configuring Maven to Use a Single Nexus Group に記載されているように Maven を構成しました。

このセットアップでは、たとえば実行時に次の出力が得られますeclipse:eclipse

$ mvn 日食:日食
...
[情報] スナップショット org.apache.wicket:wicket:1.5-SNAPSHOT: 中央からの更新を確認しています
ダウンロード: http://localhost:8081/nexus/content/groups/public/org/apache/wicket/wicket/1.5-SNAPSHOT/wicket-1.5-20091109.012145-88.pom
2K ダウンロード (wicket-1.5-20091109.012145-88.pom)
[情報] スナップショット org.apache.wicket:wicket-parent:1.5-SNAPSHOT: 中央からの更新を確認しています
ダウンロード: http://localhost:8081/nexus/content/groups/public/org/apache/wicket/wicket-parent/1.5-SNAPSHOT/wicket-parent-1.5-SNAPSHOT.pom
22K ダウンロード (wicket-parent-1.5-SNAPSHOT.pom)
ダウンロード: http://localhost:8081/nexus/content/groups/public/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8.pom
2K ダウンロード (slf4j-api-1.5.8.pom)
ダウンロード: http://localhost:8081/nexus/content/groups/public/org/slf4j/slf4j-parent/1.5.8/slf4j-parent-1.5.8.pom
7K ダウンロード (slf4j-parent-1.5.8.pom)
ダウンロード: http://localhost:8081/nexus/content/groups/public/org/apache/wicket/wicket/1.5-SNAPSHOT/wicket-1.5-20091109.012145-88.jar
1944K ダウンロード (wicket-1.5-20091109.012145-88.jar)
ダウンロード: http://localhost:8081/nexus/content/groups/public/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8.jar
22K ダウンロード (slf4j-api-1.5.8.jar)
...
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] ビルド成功
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] 合計時間: 2 分 2 秒
[情報] 終了: 2009 年 11 月 11 日水曜日 06:12:01 CET
[情報] 最終記憶: 9M/79M
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------

私にはすべてがうまく見えます。


...しかし、ローカルのMavenは、リポジトリからdepを取得する方法を確実に知っているでしょう.groupid + artifactid +ビルド番号は、アプリへのフルパスを提供します.

はい、そのため、どこかにセットアップの問題があると思います。Maven と Nexus が示されているように適切に構成されている場合、Maven は適切なリポジトリで依存関係 (例: wicket) を見つけることができるはずです。settings.xmlおよび/または依存関係の定義を再確認してください。

nexus がインデックスを作成するには、見つかったすべてのディレクトリ パスをクロールする必要がありますが、クロールしていないようです。

これは、物事がどのように機能するかではありません。リポジトリがインデックスを提供しない場合、Nexus は既にダウンロードされたアーティファクトのみをインデックス化できます。Nexus はリポジトリをクロールしません。

于 2009-11-09T06:33:57.013 に答える