2015-01-14 13 views
6

Tôi đã điều sau đây trong mùa xuân ứng dụng Boot pom tôi theo the documentation:Làm thế nào để loại trừ phụ thuộc bắc cầu của mùa xuân-boot-phụ thuộc từ phạm vi nhập khẩu maven

<dependencyManagement> 
    <dependencies> 
     <!-- Spring --> 
     <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-dependencies</artifactId> 
     <version>${spring-boot.version}</version> 
     <type>pom</type> 
     <scope>import</scope> 
     </dependency> 
    </dependencies> 
    </dependencyManagement> 

tôi cần phải sử dụng sử dụng dependencyManagement<scope>import</scope> vì Tôi cần phải sử dụng một pom cơ bản của công ty chuẩn.

Tuy nhiên, dường như không thể loại trừ các phụ thuộc transitive của spring-boot-dependencies. Trong trường hợp cụ thể của tôi, Spring Boot 1.2.1.RELEASE đang đưa vào một phiên bản của Jetty quá mới so với một số khác của tôi <dependencies>. Tôi đã cố gắng sử dụng một <exclusion> dạng:

<dependencyManagement> 
    <dependencies> 
     <!-- Spring --> 
     <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>${spring-boot.version}</version> 
     <type>pom</type> 
     <scope>import</scope> 

     <!-- Doesn't work --> 
     <exclusions> 
      <exclusion> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>*</artifactId> 
      </exclusion> 
     </exclusions> 

     </dependency> 

    </dependencies> 
    </dependencyManagement> 

sử dụng Maven 3.2.1's wildcard support, nhưng nó dường như không có hiệu lực.

Có giải pháp nào cho vấn đề này ngoài việc ghi đè rõ ràng tất cả các phụ thuộc của Jetty không? Có rất nhiều thư viện Jetty và cách tiếp cận đó sẽ khá giòn. Hơn nữa, nó xuất hiện tôi sẽ cần phải làm tương tự với phụ thuộc transitive của Jetty là tốt.

Trả lời

1

Hình như isn't possible with Maven import scope này:

Phạm vi nhập khẩu có thể được sử dụng để bao gồm quản lý phụ thuộc thông tin từ một POM từ xa vào dự án hiện tại. Một trong những giới hạn của điều này là nó không cho phép loại trừ bổ sung cho được xác định cho dự án đa mô-đun.

Tương tự như vậy, có một xác nhận từ Spring Boot documentation:

Nếu bạn đã thêm lò xo khởi động phụ thuộc vào phần dependencyManagement của riêng bạn với <scope>import</scope>bạn phải xác định lại vật mình [ ...].

+0

Đây cũng có thể là một tùy chọn: http://maven.40175.n5.nabble.com/exclude-on-scope-import-td5781856.html – btiernay

+0

cuối cùng bạn đã đạt được điều đó như thế nào? Tôi có chính xác cùng một vấn đề. – chaosguru

+0

@chaosguru Tôi đã xác định lại phần tạo tác. Đó là một nỗi đau, nhưng đây là lỗi của Maven hơn là Spring Boot. – btiernay

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