2016-05-24 3 views
7

私はMavenビルドを実行して、同じアーティファクトが何度もダウンロードされているのがわかります。 1つのレポからダウンロードが成功すると、別のレポからのダウンロードが試行されます。いくつかのダウンロードは(0KB/0.0KB /秒)です。同じアーティファクトを複数回ダウンロードしているのはなぜですか?

[INFO] Downloading: https://p-nexus.mycompany.com/nexus/content/repositories/Myproject-group/aopalliance/aopalliance/1.0/aopalliance-1.0.jar 
[INFO] Downloaded: https://p-nexus.mycompany.com/nexus/content/repositories/Myproject-group/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (5 KB at 59.8 KB/sec) 
[INFO] Downloading: https://p-nexus.mycompany.com/nexus/content/repositories/public/aopalliance/aopalliance/1.0/aopalliance-1.0.jar 
[INFO] Downloaded: https://p-nexus.mycompany.com/nexus/content/repositories/public/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (0 B at 0.0 KB/sec) 
[INFO] Downloading: http://repo.spring.io/ext-release-local/aopalliance/aopalliance/1.0/aopalliance-1.0.jar 
[INFO] Downloading: http://repo.spring.io/milestone/aopalliance/aopalliance/1.0/aopalliance-1.0.jar 
[INFO] Downloading: http://repo.spring.io/snapshot/aopalliance/aopalliance/1.0/aopalliance-1.0.jar 

リポジトリの設定:それはそれをダウンロードしていない

<repositories> 
    <repository> 
     <id>Myproject-group</id> 
     <name>Myproject-group</name> 
     <layout>default</layout> 
     <url>https://p-nexus.mycompany.com/nexus/content/repositories/Myproject-group/</url> 
     <snapshots> 
      <enabled>false</enabled> 
      <updatePolicy>never</updatePolicy> 
     </snapshots> 
     <releases> 
      <enabled>true</enabled> 
      <updatePolicy>never</updatePolicy> 
     </releases> 
    </repository> 
</repositories> 
+0

'snapshot'リポジトリの' updatePolicy'リポジトリに 'never'を設定するのは良い考えではありません。これは、スナップショット成果物の最初にダウンロードされたバージョンを超える変更をもたらすことはありません。使用しているグループにリリースリポジトリのみが含まれている場合、あなたがやっていることは意味をなさないでしょう。 – carlspring

+0

carlspring、このリポジトリにはスナップショットが含まれていません。私はここでupdatePolicyが不必要だと考えています。このダウンロードに影響する可能性のある設定をすべて追加しました。 –

+1

nexusリポジトリを正しく設定して(使用する単一のグループ)、settings.xmlファイル内の単一のグループのみを使用してください... – khmarbaise

答えて

3

Mavenにすべてのリポジトリ要求を反映させることで、単一のリポジトリを使用させることができます。リポジトリには、必要なすべての成果物が含まれているか、要求を他のリポジトリに代理できる必要があります。この設定は、Mavenリポジトリマネージャを使用して社内のリポジトリを使用して外部リクエストをプロキシする場合に最も便利です。

これを実現するには、mirrorOfを*に設定します。

<settings> 
    ... 
    <mirrors> 
    <mirror> 
     <id>internal-repository</id> 
     <name>Maven Repository Manager running on repo.mycompany.com</name> 
     <url>http://repo.mycompany.com/proxy</url> 
     <mirrorOf>*</mirrorOf> 
    </mirror> 
    </mirrors> 
    ... 
</settings> 

詳細here

は、このことができます願っています。

+1

これはおそらく、なぜこれが最初に起こるのかわからないが、問題を取り除く最善の方法です。 –

1

複数回。それは最初のリポジトリで見つけることができませんので、あなたの<repositories/>リストの次のものを試しています。

+1

しかし、1)アーティファクトがあり、2)なぜアーティファクトを持つリポジトリ用にダウンロードされたのですか他の人のためではない? –

+0

修正:このログは、maven 2.2.xでのビルド実行から取得されたものです。これは問題全体の原因かもしれません。 –

+0

なぜdownvote?ダウン投票者:説明してください。 – carlspring

2

ログ情報を見ると、複数回ダウンロードされなかったことがわかります。あなたが見ることができるように

[INFO] Downloaded: https://p-nexus.mycompany.com/nexus/content/repositories/Myproject-group/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (5 KB at 59.8 KB/sec) 

[INFO] Downloaded: https://p-nexus.mycompany.com/nexus/content/repositories/public/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (0 B at 0.0 KB/sec) 

は、そのパスがjarファイルが同じであっても、異なっていて、二INFOの終わりに、それがダウンロードされていなかった、ということ0 B at 0.0 KB/sec言います。

+0

ありがとう、私はこれに気づいていなかったし、おそらく説明の手掛かりです。それはまだ同じアーティファクトであり、一度ダウンロードされたので、なぜ2回目の試みですか? –

関連する問題