2012-01-21 22 views
6

私はMavenを初めて使用していて、最初のPOMのいずれかを設定しようとしています。私のアプリケーションはEhCacheを使ってキャッシュされます。 Mavenのセントラル・レポに行く(リンクhere)私は<dependency>タグを-N-貼り付けコピーして、そのように私のpom.xmlにコピー:私は変更を保存すると依存関係を解決する際のMavenエラー

...many dependencies above this point 
<dependency> 
    <scope>compile</scope> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>4.0.1.Final</version> 
</dependency> 
<dependency> 
    <scope>compile</scope> 
    <groupId>net.sf.ehcache</groupId> 
    <artifactId>ehcache</artifactId> 
    <version>2.5.0</version> 
</dependency> 
<dependency> 
    <scope>compile</scope> 
    <groupId>jasperreports</groupId> 
    <artifactId>jasperreports</artifactId> 
    <version>3.5.3</version> 
</dependency> 
...many dependencies below this point 

は、Eclipseのワークスペースを構築し、上で私にエラーを与えますEhcacheの2.5用の開口部<dependency>タグ:

アーティファクトnet.sf.ehcache行方不明:ehcacheをします。jar:2.5.0

をだから私は、おそらくv.2.5.0はワット間違って何かを持っていることを考え出しそれを2.4.7(最後の2.4.xの前に、2.5.0の前に同じ)繰り返す。同じ取引。

私はMavenにとってとても新しいので、どこから見てもわからない。私はProject >> Cleanを試して、Eclipseを再起動して、それが典型的なEclipseの "quirk"かどうかを確認しました。いいえ。

私は考えています:

  • ehcacheをは、Mavenのリポジトリに悪いJARファイルを公開していませんか?
  • Maven Repoに問題がありますか?
  • pom.xmlに他の設定が間違っている可能性がありますか?
  • JAR hell」という問題があります。ここで私の依存グラフのどこかに矛盾がありますか?

どうすればこの問題に取り組み始めますか?前もって感謝します!

+0

Eclipseで依存関係を再インポートする方法はありますか?また、あなたの地元のレポをチェックしてそこにいるかどうかを確認してください。おそらくコマンドラインのMavenコンパイルも試してみてください。瓶自体は問題ありません。ちょうどそれを使用するプロジェクトを作成しました。 –

答えて

8

通常、search.maven.orgを参照する方が安全です。そこからの依存関係:

<dependency> 
    <groupId>net.sf.ehcache</groupId> 
    <artifactId>ehcache</artifactId> 
    <version>2.5.0</version> 
    <type>pom</type> 
</dependency> 

マインドタイプpom。モジュールのPOMから:

これはehcacheをコアとクラスタリングのためにehcache-テラコッタ に引っ張るPOMアーティファクトです。あなたの依存関係で 'type'を 'pom'に設定してください。

誰かがテラコッタを必要としないときは、ehcache-coreは他の回答状態と同じように完璧に機能します。

+1

おそらくehcache-coreが必要です。 ehcacheは現在、親の人工物です。あなたが望むものは実際には得られません。 –

+0

@AlexSnaps実際には、それはジャーを引き出すためのトップレベルのポン型のアーティファクトです。 – mrembisz

+0

ええ、明らかに2.5対2.4の何かが変わったようです。ごめんなさい。 –

0

これをIntelliJにドロップして見つけました。あなたの設定に何か問題があると思われます。この依存関係だけを持つプロジェクトを作成してみてください。ダウンロードに失敗した場合は、設定を確認します。例えば.m2/settings.xml NexusサーバまたはMavenプロキシ/キャッシュを使用していますか?

BTW:JARを検索する簡単な方法は、利用可能なすべてのバージョンを見つけて追加する必要のあるXMLを表示することです。http://mvnrepository.com/を使用します。

8

ehcache-corein the official documentationです。 Maven Central does not have a jar artifactehcache)2.5は、エラーメッセージを説明しています。成功した私のマシンにダウンロードし

<dependency> 
    <groupId>net.sf.ehcache</groupId> 
    <artifactId>ehcache-core</artifactId> 
    <version>2.5.0</version> 
</dependency> 

ehcacheしない):ehcache-coreを使用して

はへの依存関係を変更します。

+1

これは実際にehcacheのpomからです(-coreなし)。これはクラスタ化のためにehcache-coreとehcache-terracottaをプルするためのpomアーティファクトです。あなたの依存関係で 'type'を 'pom'に設定してください。 – mrembisz

+1

@mrembiszあなたが正しいことを指摘してくれてありがとう - 私の分析は間違っていました。しかしながら、依存関係は、ehcache-coreがテラコッタのものなしで使われている限り、依然として適用されます。指摘したように、彼らは公式のehcacheマニュアルでこのようにしています。 –

+0

はい、ehcache-coreは多くの場合十分です。 – mrembisz

関連する問題