Đây không thực sự là điều mà Maven cho phép bạn thực hiện. Từ quan điểm của Maven, mỗi JAR với một tên cụ thể phải giống hệt như mọi JAR khác có cùng tên.
Ví dụ: giả sử dự án của tôi tùy thuộc vào abc-1.0.jar
. Tôi chỉ định sự phụ thuộc này vì nhóm ALphabet đã xuất bản thư viện abc
với API được chỉ định cho phiên bản 1.0. Tôi nên có thể lấy tệp jar này từ bất kỳ kho lưu trữ nào trên thế giới, ngay cả từ hàng xóm của tôi xuống đường khi Internet của tôi tắt và tự cài đặt nó vào kho lưu trữ cục bộ của tôi và nó phải chính xác cùng một tệp. Nếu nó không phải là cùng một tập tin, sau đó tôi sẽ không có đảm bảo rằng các tập tin .class
bên trong jar sẽ chứa mã thư viện tôi cần để làm cho xây dựng của tôi thành công mà không có lỗi.
Nếu bạn đang thực hiện thực sự để thực hiện công việc này, tốt, về mặt lý thuyết có thể. Bạn có thể viết một kịch bản mà sẽ:
- Phân tích XML POM cho phần
properties
và phân tích ra các tài sản cá nhân từ đó cũng như tên của các lọ phụ thuộc
- Đối với mỗi jar phụ thuộc với một bộ phân loại " manifest_injected ", cố gắng tìm nó trong kho lưu trữ cục bộ. Nếu nó không tồn tại, tạo một dự án Maven rỗng với các phụ thuộc đã cho (không có phân loại
manifest_injected
), chạy mvn validate
trên nó để đảm bảo rằng các phụ thuộc đã được tải xuống và đặt trong kho lưu trữ cục bộ nếu chúng được tìm thấy
- Sao chép tất cả các tệp JAR đã nói, mở các bản sao, thực hiện việc tạo tệp kê khai mà bạn cần với các thuộc tính mà bạn đã phân tích trước đó và lưu các lọ được tiêm vào các vị trí thích hợp trong kho lưu trữ Maven
- Gọi công trình Maven đã được chuyển đến tập lệnh một cuộc tranh cãi.
Chúc may mắn!
Tại sao bạn muốn làm điều đó, gây ra những hiện vật đã được xây dựng có nghĩa là nói cách khác không thay đổi. Bạn có thể thay đổi các tạo phẩm đó thông qua sự kết hợp của maven-dependency-plugin và maven-assembly-plugin nhưng nó sẽ tạo ra một tệp pom thực sự lớn. Mặt khác, bạn đang thay đổi các tạo tác đã được xây dựng sẽ chống lại ý tưởng của Maven. – khmarbaise
@Wimpie Bạn đã tìm ra giải pháp chưa? –
'maven-assembly-plugin' cho phép bạn chỉ định cấu hình tệp kê khai, tuy nhiên hiện tại có [bug] (http://jira.codehaus.org/browse/MASSEMBLY-450) ngăn không cho hợp nhất một tệp kê khai hiện có với các mục kê khai bổ sung. Tôi tìm thấy điều này bởi vì tôi đã cố gắng làm điều tương tự và thất bại. – user944849