7

私がやりたいことは、ローカル リポジトリにあるアーティファクトごとに Maven に「maven-metadata.xml」をダウンロードさせることです。

デフォルトの Maven の動作は、リモート リポジトリからメタデータのみをダウンロードすることです (この質問を参照してください)。

私がそれをしたい理由:

現在、ビルド マシンでリモート リポジトリを実行しています。リモート リポジトリとは、Maven プロジェクトをビルドするために必要なすべての依存関係を含む、ビルド マシンにあるディレクトリを意味します。Nexus のようなリポジトリ マネージャーを使用していないことに注意してください。リポジトリは、ビルド マシンにアップロードしたローカル リポジトリの単なるコピーです。

ただし、私のローカル リポジトリには「maven-metadata.xml」ファイルが含まれていなかったため、これらのメタデータ ファイルもビルド マシンのリポジトリにありません。中央リポジトリからメタデータ ファイルを取得できれば、作業中のリモート リポジトリをビルド マシンにアップロードできます。

4

4 に答える 4

9

パブリック リポジトリからメタデータを取得する必要はありません。メタデータには、特定のアーティファクトの利用可能なすべてのバージョンが含まれますが、リポジトリにはリリースの一部のサブセットが含まれます。

リポジトリマネージャーを使用した方が本当に良いことを指摘する価値があります。次の手順では、アーティファクト メタデータを 1 回生成できます。しかし、ニーズが変わった場合は、プロセスを繰り返すか、ファイルを手動で更新する必要があるため、マネージャーを使用しないのはなぜですか? Nexus はスタンドアロンで実行でき、フットプリントが非常に小さいです。


リポジトリ マネージャーに Nexus を使用する予定がない場合でも、Nexus を使用してメタデータを生成できます。

  1. まずはネクサスをインストール。
  2. nexus 作業ディレクトリを見つけます (デフォルトでは ${user.home}/sonatype-work.
  3. ローカル リポジトリの内容を nexus-work/releases サブディレクトリにコピーします。
  4. Nexus を起動し、ブラウザで Nexus ホームページに接続します (デフォルトではhttp://localhost:8081/nexus ) 。
  5. admin アカウント (パスワード admin123) を使用してログインします。
  6. 左側のリポジトリリンクをクリックします。
  7. リリース リポジトリを選択し、右クリックして [メタデータの再構築] をクリックします。

しばらくすると、すべてのアーティファクトのメタデータが生成されます。その後、それらを必要な場所にコピーして、Nexus をアンインストールできます。

于 2009-08-13T20:14:24.373 に答える
4

デフォルトのリポジトリは、すべてのpomがデフォルトで継承するスーパーpom.xmlで定義されています。

ローカルで〜/ .m2 / repos / *のみを使用する場合は、オフラインモードで作業します。<offline>true</offline>あなたに追加 settings.xml

ローカルとは、ローカルサーバーを意味する場合、Nexusなどのリポジトリマネージャーをインストールし、次のように「ミラー」の下でnexusを使用するように設定ファイルを変更できます。

<mirror>
  <id>central-proxy</id>
  <mirrorOf>central</mirrorOf>
  <url>my/local/nexus/server</url>
</mirror>

また、Nexusで不要なリモートリポジトリを無効にします。

于 2009-08-13T17:07:19.640 に答える
1

私が発見したことの 1 つは、誰かが jarvana の最初の検索を行っていて、これを pom 内に配置したため、メタデータ エラー メッセージが発生したことです。これ ...

   <!-- <repository>
        <id>jarvana</id>
        <url>http://www.jarvana.com/jarvana/browse/</url>
    </repository> -->

..それを修正し、エラーはなくなりました。

于 2011-02-04T23:21:22.777 に答える