4

キャッシュ用にローカルのアーティファクト リポジトリがセットアップされています。私たちのプロジェクトで構成されていますが、ビルド プロセスの stdout を見ていると、次のような行が表示されます

Downloading: http://ourserver/artifactory/our-repo/javax/transaction/jta/1.1/jta-1.1-sources.jar
Downloading: http://repo1.maven.org/maven2/javax/transaction/jta/1.1/jta-1.1-sources.jar
Downloaded: http://repo1.maven.org/maven2/javax/transaction/jta/1.1/jta-1.1-sources.jar (25 KB at 54.5 KB/sec)

そのため、ローカル リポジトリおよび Maven Central から jar をダウンロードしようとしているように見えますが、実際には Maven Central を使用しています)。

ブラウザーでローカル リポジトリの URL をコピーすると、問題なく jar を取得できます。

Artifactory の管理アプリケーションで確認すると、アーティファクトが表示されます。

Maven Central が使用される理由を説明できる人はいますか?

更新:何が起こっていて、私がしたこと:

orien's answer は、Maven Central がまったくアクセスされなかった理由を説明しています。

mliebelt のコメントは、私の解決策を示唆してくれました。アーティファクトを最初にダウンロードする必要があるときに、ローカル リポジトリの応答が遅かったようです。pom が要求されたときに jar とソースを積極的にダウンロードするようにキャッシュを構成しました。これにより、他の場所からダウンロードされるアーティファクトの数が減るはずです。

4

1 に答える 1

7

Maven は、複数のリポジトリで構成できます。プロジェクトにあるように、リポジトリを追加しても、すでに構成されているリポジトリは無効になりません。デフォルトでは、誰もが Maven Central でリポジトリを取得します。その後、Maven は、利用可能な任意のリポジトリからアーティファクトを自由にダウンロードできます。

あなたが本当にやりたいことは、ミラーをセットアップすることのように思えます。ファイルmirrorでを構成できます。settings.xml

<mirrors>
    <mirror>
        <id>our-server-repo</id>
        <name>our local repository</name>
        <url>http://ourserver/artifactory/our-repo</url>
        <mirrorOf>*</mirrorOf>
    </mirror>
</mirrors>

要素でワイルドカード (*) を使用していることに注意してくださいmirrorOf。これは、すべてのリポジトリが指定された URL 経由でアクセスされることを指定します。この構成では、Maven はローカルの Artifactory リポジトリにのみアクセスします。

于 2011-11-27T05:44:18.720 に答える