2012-01-21 3 views
6

Tôi mới làm quen với Maven và đang cố gắng thiết lập một trong số POM s đầu tiên của mình. Ứng dụng của tôi sẽ cache bằng cách sử dụng EhCache. Đi Maven Trung Repo (liên kết here) sao chép-n-dán thẻ <dependency> và sao chép nó vào pom.xml tôi như vậy:Lỗi Maven khi giải quyết sự phụ thuộc

...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 

Khi tôi lưu các thay đổi, Eclipse xây dựng không gian làm việc và mang lại cho tôi một lỗi trên thẻ mở <dependency> cho ehcache 2.5:

Thiếu vật net.sf.ehcache: ehcache: jar: 2.5.0

vì vậy, tôi đã tìm rằng có lẽ v.2.5.0 có cái gì sai w ith nó, và lặp đi lặp lại tương tự cho 2.4.7 (phát hành 2.4.x mới nhất trước 2.5.0). Cùng một thỏa thuận.

Vì tôi quá mới với Maven, tôi thậm chí không biết bắt đầu tìm kiếm ở đâu. Tôi đã thử Project >> Clean và thậm chí khởi động lại Eclipse để xem đó có phải là một "ảo" Eclipse điển hình hay không. Không.

Tôi đang nghĩ đến:

  • ehcache thể được xuất bản lọ xấu đến repo Maven?
  • Có thể Maven Repo có vấn đề gì với nó?
  • Điều này có thể do điều gì khác được định cấu hình sai trong số pom.xml của tôi không?
  • Đây có phải là vấn đề "JAR địa ngục" nơi tôi có xung đột ở đâu đó trên biểu đồ phụ thuộc của tôi không?

SO bắt đầu giải quyết vấn đề này như thế nào? Cảm ơn trước!

+0

Có cách nào để nhập lại các phụ thuộc trong Eclipse không? Ngoài ra kiểm tra repo địa phương của bạn để xem nếu nó có; có thể thử biên dịch Maven dòng lệnh. Bình chính nó là tốt; vừa tạo một dự án sử dụng nó. –

Trả lời

8

Thường an toàn hơn để tham khảo search.maven.org. Phụ thuộc từ đó:

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

Loại ý tưởng pom. Từ mô-đun của pom:

Đây là một tạo tác pom để lấy lõi ehcache và ehcache-terracotta để phân cụm. Đảm bảo đặt 'loại' thành 'pom' trong phụ thuộc của bạn.

Một cách bình thường khi ai đó không cần đất nung, lõi ehcache sẽ hoạt động hoàn hảo như các trạng thái câu trả lời khác.

+1

Bạn có thể muốn ehcache-core. ehcache hiện là pom cha mẹ tạo tác, mà sẽ không thực sự giúp bạn có được những gì bạn muốn. –

+0

@AlexSnaps trên thực tế, nó là một loại đồ tạo tác loại đầu cấp để kéo vào các lọ. – mrembisz

+0

Vâng, có vẻ như có gì đó đã thay đổi trong 2.5 so với 2.4. Lấy làm tiếc. –

0

Tôi đã bỏ trang này vào IntelliJ và tìm thấy nó. Tôi nghi ngờ có điều gì đó sai trái với cài đặt của bạn. Hãy thử tạo một dự án chỉ với sự phụ thuộc này trong nó. Nếu không tải xuống được, tôi sẽ kiểm tra cài đặt của bạn. ví dụ. .m2/settings.xml Bạn có đang sử dụng máy chủ Nexus hoặc proxy/bộ nhớ cache của maven không?

BTW: Cách đơn giản hơn để tìm kiếm các JAR là sử dụng http://mvnrepository.com/ sẽ tìm tất cả các phiên bản có sẵn và hiển thị cho bạn XML bạn cần thêm.

8

Chúng sử dụng ehcache-corein the official documentation. Maven Central does not have a jar artifact cho ehcache 2.5 giải thích thông báo lỗi của bạn.

Sử dụng ehcache-core thay đổi phụ thuộc vào:

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

nào tải thành công trên máy tính của tôi (ehcache không).

+1

Trên thực tế đây là từ pom cho ehcache (không có -core): Đây là một pom tạo tác để kéo trong ehcache-core và ehcache-terracotta cho clustering. Đảm bảo đặt 'loại' thành 'pom' trong phụ thuộc của bạn. – mrembisz

+1

@mrembisz bạn nói đúng, cảm ơn bạn đã chỉ ra điều này - phân tích của tôi đã sai. Tuy nhiên, sự phụ thuộc vẫn được áp dụng miễn là lõi ehcache được sử dụng mà không có thứ đất nung. Như đã chỉ ra, họ làm theo cách này trong hướng dẫn sử dụng ehcache chính thức. –

+0

Vâng, tôi đồng ý rằng lõi ehcache chỉ đủ trong nhiều trường hợp. – mrembisz