2015-06-11 13 views
14

Tôi đang sử dụng spring-boot và gặp phải lỗi tương tự như lỗi được mô tả here. Tôi đã thêm phần sau vào tệp pom.xml của mình.Maven - Suppress Ghi đè cảnh báo phiên bản được quản lý trong Eclipse

<dependency> 
     <groupId>javax.validation</groupId> 
     <artifactId>validation-api</artifactId><!--$NO-MVN-MAN-VER$--> 
     <version>1.1.0.Final</version> 
    </dependency> 

Tôi trọng xác nhận-api 1.0.0 phụ thuộc quy định tại pom.xml của bố mẹ tôi, bằng cách khởi động mùa xuân, và điều này đưa ra thông điệp cảnh báo pesky:

Overriding managed version 1.0.0.GA for validation-api

Làm thế nào tôi có thể vĩnh viễn ngăn chặn thông báo cảnh báo này trong Eclipse? Nó cho thấy cả hai trong pom.xml của tôi và xem vấn đề của tôi.

+0

Cập nhật phiên bản trong pom cha mẹ đã cho. – khmarbaise

+0

Thêm nhận xét phù hợp với tôi. –

+0

Cảm ơn bạn đã trả lời. RE cập nhật pom mẹ ... Tôi không sở hữu pom mẹ, nó được kế thừa thông qua Spring Boot. RE thêm mà không hoạt động, nhưng tôi không biết nếu tôi sử dụng nó một cách chính xác. Tôi cũng muốn biết thêm về nó nếu điều đó làm rõ ràng cảnh báo. –

Trả lời

19

Khi cảnh báo rằng xuất hiện, bạn có thể mở menu Quick-Fix trên cảnh báo (Ctrl + 1) và chọn

Ignore this warning

này sẽ bổ sung thêm những nhận xét trên dòng phiên bản, như:

<dependency> 
    <groupId>javax.validation</groupId> 
    <artifactId>validation-api</artifactId> 
    <version>1.1.0.Final</version><!--$NO-MVN-MAN-VER$--> 
</dependency> 

Vấn đề của bạn là bạn đã thêm nhận xét đó theo cách thủ công trên dòng sai.

+0

điều này làm việc để loại bỏ cảnh báo được hiển thị trong nhật thực nhưng tôi vẫn không thể xây dựng dự án. nhận được lỗi: 'Quy tắc 0: org.commonjava.maven.enforcer.rule.EnforceManagedDepsRule không thành công với thông báo: 2 phụ thuộc sau KHÔNG sử dụng phiên bản được quản lý ' –

+2

Đây là cách không tốt để giải quyết vấn đề, bởi vì nó có thể bị hỏng sự phụ thuộc của thư viện khác. –

2

Nhập phiên bản bạn cần trong pom chính.

Cảnh báo này có nghĩa là bạn đang cố gắng ghi đè phiên bản tạo tác được xác định trong pom chính (cấp cao nhất). Chỉ cần nhập phiên bản mà bạn cần trong pom chính và bạn thậm chí không cần phải sử dụng <version /> trong poms khác cho sự phụ thuộc này.

5

Kể từ khi dự án được sử dụng spring-boot, một câu trả lời thích hợp hơn có thể được tìm thấy ở đây:. https://stackoverflow.com/a/35385268/1568658

(Và kể từ khi tôi có cùng một vấn đề, và câu trả lời ở trên cũng không phải là rất hoàn chỉnh tôi sẽ thêm một câu trả lời . ở đây)

Lý do của vấn đề:

spring-boot đã xác định nhiều phụ thuộc & phiên bản của họ, khi bạn thêm sử dụng lò xo khởi động như pare nt, những phụ thuộc này được thừa hưởng và ghi đè một trong những phụ thuộc với một phiên bản khác sẽ nhận được cảnh báo, bởi vì nó có thể làm hỏng các phụ thuộc của các thư viện khác.

Giải pháp:

Xác định một tài sản cho rằng sự phụ thuộc giữa <properties></properties>, để xác định phiên bản.

ví dụ

 <properties> 
      <reactor.version>2.5.0.BUILD-SNAPSHOT</reactor.version> 
     </properties> 

Làm thế nào để tìm ra tên thuộc tính:

  • Mở pom.xml của bạn trong nhật thực.
  • ctrl + click trên <parent> thẻ để mở pom của cha mẹ, và cần phải nhấp hai lần reversely để cuối cùng có được để pom với artifactId như spring-boot-dependencies
  • Một khi bạn đã mở rằng pom, tìm kiếm sự phụ thuộc của bạn, e.g servlet-api và bạn có thể xem phiên bản mặc định.

Có một tài liệu từ mùa xuân giải thích nó tốt hơn: https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot

-1

hữu ích! Tôi giải quyết vấn đề. Khi tệp pom mô-đun khai báo 9.2.12.M0 trong khi khởi động mùa xuân tham chiếu đến V9.3. Tôi ghi đè lên V9.2 trong file pom cha mẹ. tiếp theo là "Eric Wang"

+0

lò xo khởi động sử dụng các phiên bản mặc định, mà là có thể được khai báo trong file pom như phần tử \t \t \t \t \t \t \t \t \t org.springframework.boot \t \t \t \t lò xo khởi động phụ thuộc \t \t \t \t 1.5.1.RELEASE \t \t \t \t pom \t \t \t \t nhập khẩu \t \t \t \t \t \t, bạn nên khai báo phiên bản của riêng bạn để ghi đè lên phiên bản mặc định. –

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