Thật vậy, theo thiết kế, Maven không giải quyết các phụ thuộc bắc cầu của một cuộc chiến được tuyên bố là phụ thuộc của một dự án. Thực sự có một vấn đề về điều đó, MNG-1991 , nhưng nó sẽ không được giải quyết trong Maven 2.x và tôi không chắc rằng tôi không biết liệu các lớp phủ có cho phép giải quyết vấn đề này hay không. Sự hiểu biết của tôi về giải pháp được đề xuất là sao chép các phụ thuộc, ví dụ như trong một dự án kiểu pom.
(CHỈNH SỬA: Sau khi tìm hiểu thêm, tôi đã tìm thấy một số điều thú vị trong chủ đề này mà tôi đang trích dẫn bên dưới:
Tôi đã giúp đỡ trong việc phát triển dự án AppFuse trong tháng trước, nơi chúng tôi sử dụng nhiều tính năng lớp phủ chiến tranh trong plugin Maven war. Đó là một tính năng thực sự tiện lợi!
Để có được sức mạnh tối đa với lớp phủ chiến tranh, tôi đã phát triển plugin Warpath cho phép các dự án sử dụng các hiện vật chiến tranh dưới dạng phụ thuộc chính thức. Tóm lại:
1) Nội dung của thư mục / WEB-INF / class trong các hiện vật phụ thuộc chiến tranh có thể được đưa vào classpath của dự án cho các tác vụ biên dịch thông thường, v.v.
2) Các phụ thuộc có tính chất bắc cầu từ các tạo tác phụ thuộc chiến tranh trở nên có sẵn để sử dụng bởi các plugin khác, ví dụ như biên dịch và tai - vì vậy không còn phải bao gồm tất cả các phụ thuộc khi tạo các cuộc chiến mỏng!
Plugin hiện đã được sử dụng tích cực trong dự án AppFuse trong vài tháng qua và tôi cảm thấy nó đã đến thời điểm có thể sử dụng được và ổn định. Nhóm plugin war có quan tâm đến việc bao gồm chức năng warpath bên trong plugin war không? Nó dường như là nơi tự nhiên nhất để tổ chức nó.
Vì vậy, tôi không có bất kỳ kinh nghiệm nào về nó, nhưng plugin maven warpath thực sự trông đẹp và đơn giản và có sẵn trong repo trung tâm. Để sử dụng nó, hãy bao gồm phần tử cấu hình plugin sau trong pom.xml
tệp của bạn :
[...]
<build>
<plugins>
<plugin>
<groupId>org.appfuse</groupId>
<artifactId>maven-warpath-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>add-classes</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
Và thêm các phụ thuộc war mà bạn muốn đưa vào classpath dưới dạng phụ thuộc warpath :
[...]
<dependencies>
<dependency>
<groupId>org.appfuse</groupId>
<artifactId>appfuse-web</artifactId>
<version>2.0</version>
<type>war</type>
</dependency>
<dependency>
<groupId>org.appfuse</groupId>
<artifactId>appfuse-web</artifactId>
<version>2.0</version>
<type>warpath</type>
</dependency>
</dependencies>
[...]
Cần có cả loại phụ thuộc warpath và warpath: loại war được plugin Maven war sử dụng để thực hiện war overlay, loại warpath được plugin Warpath sử dụng để xác định danh sách hiện vật chính xác để đưa vào classpath của dự án.
Tôi sẽ thử.)