2016-02-08 26 views
5
<mirrors> 
    <!-- mirror 
    | Specifies a repository mirror site to use instead of a given repository. The repository that 
    | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used 
    | for inheritance and direct lookup purposes, and must be unique across the set of mirrors. 
    | 
    <mirror> 
     <id>mirrorId</id> 
     <mirrorOf>repositoryId</mirrorOf> 
     <name>Human Readable Name for this Mirror.</name> 
     <url>http://my.repository.com/repo/path</url> 
    </mirror> 
    --> 
    <mirror> 
     <id>nexus-osc</id> 
     <mirrorOf>central</mirrorOf> 
     <name>Nexus osc</name> 
     <url>http://maven.oschina.net/content/groups/public/</url> 
    </mirror> 
    <mirror> 
     <id>nexus-osc-thirdparty</id> 
     <mirrorOf>thirdparty</mirrorOf> 
     <name>Nexus osc thirdparty</name> 
     <url>http://maven.oschina.net/content/repositories/thirdparty/</url> 
    </mirror> 
    <mirror> 
     <id>maven2</id> 
     <mirrorOf>maven2</mirrorOf> 
     <name>maven2</name> 
     <url>http://repo1.maven.org/maven2/</url> 
    </mirror> 
</mirrors> 

正確にはmirrorOfを使用していますか?まず最初に瓶をid=nexus-oscから取得してからnexus-osc-thirdpartyにしてからmaven2? 私はすでにmaven mirror setting guideをチェックしましたが、私はまだ理解できません。 Maven documentation about mirrorsを引用mavenリポジトリsetting.xmlミラー

答えて

4

を与えられたリポジトリのミラーを設定するには、あなたが新しいリポジトリに独自のIDとURLを与え、あなたの設定ファイル(${user.home}/.m2/settings.xml)でそれを提供し、そのmirrorOf設定を指定しますミラーを使用しているリポジトリのIDです。

これが意味することは、既存のリポジトリ宣言へmirrorOfポイントことであり、それは指定されたリポジトリに接続しようとするときにミラーを使用するMavenを構成します。


例を挙げておきます。お使いの設定で、次の宣言と

<project> 
    ... 
    <repositories> 
    <repository> 
     <id>my-internal-site</id> 
     <url>http://myserver/repo</url> 
    </repository> 
    </repositories> 
    ... 
</project> 

<settings> 
    ... 
    <mirrors> 
    <mirror> 
     <id>UK</id> 
     <name>UK Central</name> 
     <url>http://uk.maven.org/maven2</url> 
     <mirrorOf>my-internal-site</mirrorOf> 
    </mirror> 
    </mirrors> 
    ... 
</settings> 

これが意味することはMavenのからライブラリをダウンロードしようとしたときにということであるあなたは、あなたのプロジェクトで定義された以下のリポジトリとのプロジェクトを持っていますmy-internal-siteリポジトリでは、実際にはhttp://myserver/repoを使用しませんが、ミラー宣言を使用してhttp://uk.maven.org/maven2からライブラリをダウンロードしてください。

ではないは任意の順序を定義します。ミラーリングされたリポジトリの代わりにMavenがアーティファクトをダウンロードする必要がある場所を宣言します。


指定<mirrorOf>central</mirrorOf>あなたはMavenのダウンロードアーティファクトからデフォルトの場所ですMavenの中央リポジトリをミラーリングしているMavenを伝えます。あなたは中央の内部のリポジトリを持っていたときにミラーを使用してこのように


は、多くの場合、企業のコンテキストで使用され、すべてのMavenの要求は、そのリポジトリマネージャを通過します。

+0

@Tunakiに感謝します。 – Oscar

関連する問題