2016-11-06 5 views
1

これが私の基本的なセットアップです:なぜ、gradleは依存関係を解決している間に私のMavenリポジトリに依存関係をプッシュしますか?

// Dependencies 
repositories { 
    maven { url "http://MYREPO.." } 
    jcenter() 
    mavenLocal() 
} 

dependencies { 
    compile 'org.bytedeco.javacpp-presets:opencv:3.1.0-1.2' 
} 

依存関係の解決がどのように動作するかの私の理解から、Gradleのがしようと模索依存関係のために最初に私のレポでは、その後、jcentralで()した後、mavenLocalでなければなりません。

代わりに、私は./gradlewにこの出力を得る組み立て:実際には

:compileJava 
Download http://MYREPO.../org/bytedeco/javacpp-presets/opencv/3.1.0-1.2/opencv-3.1.0-1.2.jar 
:processResources UP-TO-DATE 
:classes 
:jar UP-TO-DATE 
:assemble UP-TO-DATE 

BUILD SUCCESSFUL 

、私は何が起こるかを見るために私のリポジトリ内で見てみると、私はOpenCVの依存関係がの結果としてプッシュされてい依存関係の解決。

私はアーティファクトは、それが実際に存在していjcenter、からダウンロードする代わりに、期待されます。

私はapache archivaを使用しています。

どうしてですか? この動作はどこかに記載されていますか? これが私のリポジトリ設定やgradleスクリプトに問題があるかどうかはわかりません。

+0

リポジトリミラーリングはセントラルリポジトリですか? – tddmonkey

+0

これはおそらく、すべての単一の成果物が私のリポジトリにプッシュされ、jcenterから直接ダウンロードされないことを意味しますか? – Lake

答えて

0

ApacheのArchivaのためのチャンスのGradleを離れることはありません、キャッシュ設定は、「プロキシコネクタ」の下に設定可能であり、ここでは文書化:

http://archiva.apache.org/docs/1.4-M4/adminguide/proxy-connectors.html

あなたは基本的にでき後続の要求で使用するために、ミラーリングされたレポからアーティファクトをキャッシュする頻度を選択するか、または選択しないでください。

2

リポジトリは、中央リポジトリをミラーリングされた場合、何が起こることはこれです:

  1. のGradleは、あなたのレポから依存
  2. あなたのレポはそれを持っている見つけようとするので、連絡先、上流レポ依存関係は、上流レポからダウンロードされ、あなたのレポ
  3. 依存関係にキャッシュされている
のGradleに渡され、ミラーリングされました

これは直接jcenterに連絡しようとする:)

+0

返信ありがとう:)私はステップ1)、2)、4)を想像することができましたが、3)必須か、それとも設定可能であるべきですか?私は私の個人的なレポがそれを使用するときにキャッシュするすべての単一の依存関係に浸水する可能性を考慮する:) – Lake

+0

私は2)と3)がかなり接続されていると信じています:あなたはRepoミラーリングをオフにしようとする可能性があります。 Archivaを使っていないので、どうやったらいいのか分かりません。 – Nikem

+0

私はついに設定を見つけました。概念的なガイダンスをありがとう^^ – Lake

関連する問題