2012-12-13 23 views
5

Dự án của tôi tùy thuộc vào jparsec, phụ thuộc vào cglib, phụ thuộc vào asm. dự án của tôi cũng trực tiếp phụ thuộc vào asm, nhưng một phiên bản mới hơn một cglib phụ thuộc vào:Không bao gồm phụ thuộc chuyển tiếp lồng nhau trong maven

enter image description here

Dường như tôi không thể loại trừ asm từ jparsec sự phụ thuộc của tôi. Khi tôi cố gắng loại trừ nó với Eclipse, nó không làm thay đổi pom của tôi. Nếu tôi tự loại bỏ nó, nó sẽ không có hiệu lực.

Tùy chọn duy nhất của tôi ở đây là loại trừ cglib từ jparsec và sau đó thêm phụ thuộc theo cách thủ công trên cglib với asm bị loại trừ? Điều này có vẻ hơi phức tạp với tôi, nhưng nó hoạt động.

+0

Có, đó là tùy chọn hợp lệ để giải quyết vấn đề này. Một tùy chọn khác là đặt sự phụ thuộc 'asm' của bạn lên trên sự phụ thuộc' jparsec' trong tệp pom.xml. –

+0

@Andrew: cảm ơn. Đặt 'asm' trước' jparsec' cho phép loại trừ làm việc với 'asm' thay vì chỉ chống lại' cglib'. Tôi không chắc chắn nó là cần thiết về mặt kỹ thuật nữa (nó được xây dựng mà không có exlusion), nhưng tôi đã thêm nó anyway để được rõ ràng. Nếu bạn thêm một câu trả lời tôi sẽ chấp nhận nó. –

+0

Đã thêm câu trả lời. –

Trả lời

3

Theo nhận xét của tôi, bạn có 2 lựa chọn để giải quyết vấn đề này:

  1. Người mà bạn đề nghị, ví dụ loại trừ cglib từ jparsec và thêm cglib với asm bị loại trừ.
  2. Tìm phụ thuộc asm của bạn phía trên phụ thuộc jparsec.
4

Tôi đã dự kiến ​​rằng nếu bạn đặt asm trước jparsec trong POM, bạn sẽ không bị loại trừ. Hành vi Maven "nearest definition" sẽ khởi động để đảm bảo chỉ sử dụng 4.1.

+0

Điều này làm việc cho tôi. Cảm ơn! – BPS

Các vấn đề liên quan