Tôi đang xây dựng một đường ống triển khai cho một vài dự án phụ thuộc vào nhau. Mỗi công trình xây dựng một bản phát hành mới xây dựng với một số phiên bản duy nhất, được triển khai đến một kho lưu trữ Maven. Các dự án hạ lưu trong đường ống sau đó được kích hoạt với phiên bản mới đó là một sự phụ thuộc và được xây dựng theo cách như vậy.Thay đổi Maven pom.xml <properties> giá trị vật lý
Điều tôi cần là thay đổi giá trị thuộc tính trong tệp pom.xml (hoặc tất cả poms trong dự án đa mô-đun) trước khi tạo dự án. Ví dụ trong mã sau "0.1.200" sẽ được thay đổi thành "0.1.345" (hoặc bất kỳ số bản dựng mới nhất nào). Việc sử dụng các thuộc tính hệ thống không phải là một tùy chọn, vì pom được cập nhật sẽ được triển khai trong một kho lưu trữ Maven, do đó thay đổi phải được lưu giữ lâu dài.
<properties>
<foo.version>0.1.200</foo.version>
</properties>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>foo</artifactId>
<version>${foo.version}</version>
</dependency>
</dependencies>
Có một số plugin Maven để làm điều này với một lệnh dòng lệnh không? Khác, tôi sẽ cần viết một tập lệnh ngắn (ví dụ: trong Ruby) để phân tích cú pháp và thay đổi tất cả các tệp pom.xml trong dự án.
Plugin đó có hoạt động để tự động cập nhật phụ thuộc vào phiên bản mới nhất của chúng, nhưng tôi không nhận thấy có cách cập nhật một thuộc tính cho một giá trị được chỉ định. –
[Phiên bản-maven-plugin] (http://mojo.codehaus.org/versions-maven-plugin/examples/update-properties.html) có khả năng xử lý các thuộc tính như vậy. Hãy xem các tài liệu. – khmarbaise
Sự cố với các phiên bản: thuộc tính cập nhật là nó tự động cố gắng phát hiện phiên bản mới nhất là gì. Trong một đường ống triển khai không tốt, bởi vì nó có thể vô tình khiến Maven tìm một phiên bản quá cũ hoặc mới. Để tránh các bản dựng không thể lặp lại, tôi yêu cầu người dùng phải biết phiên bản nào cần sử dụng. –