2009-11-18 23 views
19

私のベースプロジェクトでは、存在しないリポジトリ宣言がpomにあるJasperReportsの依存関係を使用します。すべてのMavenコマンドを実行すると、このJasperリポジトリのコモンズコレクションを探す依存関係があるので、タイムアウトを待つ必要があります。
これは私の基本プロジェクトであり、私の他のプロジェクトの依存関係として使用されているので、再びタイムアウトを待つ必要があります。
このリポジトリをブラックリストに登録するか、この設定を上書きする方法はありますか?手動でMavenリポジトリを無効にする方法/ブラックリスト

注:それはこの問題を解決するために、多分

<dependency> 
    <groupId>commons-collections</groupId> 
    <artifactId>commons-collections</artifactId> 
    <version>[2.1,)</version> 
    <scope>compile</scope> 
</dependency> 

2.Myアイデア範囲のbacause、ジャスパー・リポジトリで検索1.Why
は碧玉POMを変更し、プロキシリポジトリを使用することですが、私はに探して別のオプション。
3.私はjasperreports 1.3.3バージョンを使用しています。変更しないでください。

答えて

8

このリポジトリをブラックリストに移動するか、この設定を上書きする方法はありますか?

私の知る限り、これは不可能です。

なぜそれが多分理由の範囲

の、ジャスパー・リポジトリで検索しないはい、私は範囲が、ここで、この動作の「責任」だと思います。範囲がなければ、Mavenはあなたのローカルリポジトリで利用可能なものより新しいバージョンのリモートリポジトリをチェックする必要はありません。

この問題を解決する私の考えは、jasper pomを変更してプロキシリポジトリを使用することですが、私は別のオプションを検討しています。

もちろん、ジャスパーpomの修正やプロキシリポジトリの使用は理想的な解決策になりますが、これは必ずしも可能ではありません。しかし、おそらく回避策があります。範囲を持つjasperreportsの推移的な依存関係を除外し、代わりにあなたのpomにそれらを(固定バージョンで)提供するようにしましたか?このような何かを:

<dependencies> 
    <dependency> 
    <groupId>jasperreports</groupId> 
    <artifactId>jasperreports</artifactId> 
    <version>1.3.3</version> 
    <!-- Remove Transitive dependencies drawn by Jasper Report that we don't want --> 
    <exclusions> 
     <exclusion> 
     <groupId>commons-collections</groupId> 
     <artifactId>commons-collections</artifactId> 
     </exclusion> 
     ... 
    </exclusions> 
    </dependency> 
    <dependency> 
    <groupId>commons-collections</groupId> 
    <artifactId>commons-collections</artifactId> 
    <version>2.1</version><!-- Or whatever version, as long as it's fixed --> 
    <scope>compile</scope> 
    </dependency> 
    .... 
<dependencies> 

この方法で、Mavenは非実在のリポジトリをチェックする必要はありません、これはタイムアウトを待つことは避けるべきです。私はそれを試してみましょう。

私はjasperreports 1.3.3バージョンを使用していますが、変更しないでください。

問題ありません。

+0

@Pascal。ありがとうございます。 Mavenの範囲は悪いです:) – cetnar

+0

@cetnarうれしかったです。そして、私は同意する、範囲は良くない、彼らはソリューションよりも多くの問題を追加します。 –

+0

以下のFredの回答は無効にすることができますが、私はちょうどそれを使用しました。おそらく新しい機能ですか? – brad

11

settings.xmlでmirrorOf宣言を使用すると、repoを上書きできます。それは典型的なものではありませんが、たとえばジャスパーのレポートでmirrorOfを設定してCentral(repo1.maven.org)に報告すると、それを効果的に消滅させるでしょう。

より良いオプションは、Nexusのようなリポジトリマネージャを使用して、実際に提供されるプロキシと成果物を制御できます。

+1

これは本当に私を助けました、ありがとう。 –

+0

これは容認された解決策であるべきです! –

+0

Iのsettings.xmlに追加することで無効になっjava.net( /conf/settings.xmlまたは〜/ .m2/settings.xmlの) ' ... disabled-jave.net ます。https: //jcenter.bintray.com/ http://download.java.net/maven/2 ' – raisercostin

16

は次のtell Mavenは、特定のリポジトリを無視することはないでしょう:フレッドから

<repository> 
     <id>repo1.maven</id> 
     <url>http://repo1.maven.org</url> 
     <releases> 
      <enabled>false</enabled> 
     </releases> 
     <snapshots> 
      <enabled>false</enabled> 
     </snapshots> 
    </repository> 
+0

上記のアプローチは、いくつかの推移依存関係者のpom.xmlにありますMavenのレポをブラックリストには良い方法です、コンポーネントが既にMavenの中央に存在する場合(java.netから得た恐ろしい301リダイレクトのような)問題を引き起こしています。 – kkrugler

+0

これは私に起こったことです。依存関係は、現在、GAリポジトリに置き換えられている技術プレビューリポジトリを参照していました。それをブロックするためにこれを使用し、すべてが世界でうまくいっていましたが、phew - それは追跡するのが難しいです! – JoshC13

0

ソリューションは、私のために素晴らしい仕事しました。私はこの解決策を働かせるために、問題の遷移依存関係のpomファイルからリポジトリIDを突き合わせなければなりませんでした。

関連する問題