0

私はMavenの初心者です。プロジェクトの内部アーティファクトのリポジトリ サーバーとして機能するローカル Archiva 1.3.6 サーバーをセットアップし、外部リポジトリにミラーリングしようとしています。スナップショット以外は問題なく動作します。Maven バージョン 3.0.5 を使用しています。

これが私のsettings.xmlファイルのミラー設定です

  <mirrors>
    <mirror>
        <id>internal</id>
        <mirrorOf>external:*</mirrorOf>
        <name>My Maven Repository</name>
        <url>http://my.repo.server:9000/archiva/repository/internal/</url>
    </mirror>
  </mirrors> 

ビルド中に、Maven が間違ったリポジトリからスナップショット アーティファクトをダウンロードしようとします。親の親に設定された2つのリポジトリがありますpom.xmlinternalおよびsnapshots

<repositories>
    <repository>
        <id>internal</id>
        <url>http://my.repo.server:9000/archiva/repository/internal/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>snapshots</id>
        <url>http://my.repo.server:9000/archiva/repository/snapshots/</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

プロジェクトpom.xmlには、次の依存関係があります。

<dependency>
    <groupId>com.mygroup</groupId>
    <artifactId>metadata-framework</artifactId>
    <version>1.0.3.SNAPSHOT</version>
</dependency>

ビルド中、Maven は次のことを試みます。

Downloading: 
.../archiva/repository/**snapshots**/com/mygroup/metadata-framework/1.0.3.SNAPSHOT/maven-metadata.xml

Downloaded: 
.../archiva/repository/**snapshots**/com/mygroup/metadata-framework/1.0.3.SNAPSHOT/maven-metadata.xml (795 B at 16.9 KB/sec)

Downloading: 
.../archiva/repository/**internal**/com/mygroup/metadata-framework/1.0.3.20130908.081541-1/cems-metadata-framework-1.0.3.20130908.081541-1.pom

[WARNING] The POM for com.myground:metadata-framework:jar:1.0.3.20130908.081541-1 is missing, no dependen
cy information available

レポ内のファイルsnapshotが正しいこと、maven-metadata.xml などが適切に生成されていることなどを確認しました。Maven がsnapshotレポからメタデータを正しくダウンロードし、正しいタイムスタンプ付きバージョンを決定したようですが、何らかの形でinternalレポから実際のファイルをダウンロードすることにしました。の代わりにsnapshots、404 とビルドの失敗につながります。

Mavenがどのように機能するのかわかりません。助けてください。

4

3 に答える 3

0

より簡潔に言えば、 を変更せずに、 との両方を含むアーカイブでリポジトリ グループをpom.xml定義し、次に以下を に追加できます。allinternalsnapshots.m2/settings.xml

<mirrors>
    <mirror><id>myGroup</id><mirrorOf>*</mirrorOf>
        <url>http://my.repo.server:9000/archiva/repository/all/</url>
    </mirror>
</mirrors>
<profiles>
    <profile><id>alwaysactive</id>
        <activation><activeByDefault>true</activeByDefault></activation>
        <repositories>
            <repository><id>unused</id><url>unused</url></repository>
        </repositories>
    </profile>
<profiles>
于 2015-05-20T08:41:02.003 に答える
0

@lee - Archiva 内の内部スナップショット リポジトリからカスタム アーティファクトをダウンロードする方法は次のとおりです。私は毎日この設定を使用しています。設定l.xml:

「 」という名前の仮想レポがあるとしhelpます。 help外部向けリポジトリと 2 つの内部向けリポジトリで構成されます。これらの 2 つの内部向けリポジトリは次のとおりです。 help-internal help-snapshots

セクションの下で<mirrors>、私は宣言します:

<mirror>
    <id>help</id>
    <mirrorOf>*, !help-snapshots</mirrorOf>
    <name>The Help Repository</name>
    <url>http://blah:8080/archiva/repository/help/</url>
</mirror>

セクションの下で<servers>、私は宣言します:

<server>
    <id>help</id>
    <username>my_user_name</username>
    <password>{my_encrypted_pwd}</password>
</server>
<server>
    <id>help-snapshots</id>
    <username>my_user_name</username>
    <password>{my_encrypted_pwd}</password>
</server>

そして今、最後のビット。社内スナップショットを使用する私のプロジェクトの pom には、次のものが含まれます。

<repositories>
    <repository>
        <id>help-snapshots</id>
        <url>http://blah:8080/archiva/repository/help-snapshots/</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
于 2013-09-09T06:45:35.223 に答える