9

私のMavenアーティファクトはNexusスナップショットリポジトリにデプロイされています。そこでは正しいディレクトリに保存されますが、そのファイル名は次のパターンになっています。

mylibrary-1.0-20130213.125827-2.jar

ただし、Mavenはそのスナップショットのダウンロードに失敗します。エラーログによると、Mavenは次のファイル名を期待しているようです。

mylibrary-1.0-SNAPSHOT.jar

これらは私のpomのリポジトリ設定です:

<repositories>
    <repository>
        <id>mycompany-all</id>
        <url>https://servername/nexus/content/groups/mycompany/</url>
    </repository>
</repositories>

<distributionManagement>
    <repository>
        <id>mycompany-releases</id>
        <url>https://servername/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>mycompany-snapshots</id>
        <url>https://servername/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

注:ネクサスグループには、releasessnapshotsリポジトリの両方が含まれます。

これらのリポジトリを構成しませんでしたsettings.xml-それが問題ですか?または私は他に何が間違っていますか?

4

2 に答える 2

14

投稿したパターン(mylibrary-1.0-20130213.125827-2.jar)は、独自のスナップショットバージョンです。Maven 3では、このタイプのアーティファクトの命名を強制しますが、Maven 2では、次のようなステートメントで防ぐことができます。

<distributionManagement>
  ...
  <snapshotRepository>
    ...
    <uniqueVersion>false</uniqueVersion>
  </snapshotRepository>
  ...
</distributionManagement>

プロジェクトで特定のスナップショットを使用するには、次のように宣言します。

<dependency>
  <groupId>com.foo</groupId>
  <artifactId>mylibrary</artifactId>
  <version>1.0-20130213.125827-2</version>
</dependency>

最新の既知のスナップショットを使用するには、「古いスタイル」として宣言します。

<dependency>
  <groupId>com.foo</groupId>
  <artifactId>mylibrary</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

この同様の質問への回答も役立つ場合があります。

于 2013-02-14T08:07:10.753 に答える
7

私はこれを次のようにリポジトリを追加することで機能させましたsettings.xml

<repositories>
    <repository>
        <id>mycompany-releases</id>
        <url>https://servername/nexus/content/repositories/releases/</url>
        <releases><enabled>true</enabled></releases>
        <snapshots><enabled>false</enabled></snapshots>
    </repository>
    <repository>
        <id>mycompany-snapshots</id>
        <url>https://servername/nexus/content/repositories/snapshots/</url>
        <releases><enabled>false</enabled></releases>
        <snapshots><enabled>true</enabled></snapshots>
    </repository>
</repositories>

次に、SNAPSHOTjarファイルが正常にダウンロードされました。Mavenがスナップショットリポジトリを処理することを知っている場合、uniqueVersionの有無にかかわらず試行するのではないかと思います(Duncan Jonesの回答を参照)。

pluginRepositoriesこの場合、カスタムMavenプラグインがあるため、これらのブロックを複製する必要があることに注意してください。

于 2013-02-14T08:50:19.410 に答える