2012-07-13 28 views
8

Phiên bản mvn: chuẩn bịBản phát hành Maven có thể: chuẩn bị phiên bản chụp nhanh cho phiên bản phát hành ở chế độ hàng loạt

Nó liên tục yêu cầu tôi giải quyết phụ thuộc chụp nhanh. Có cách nào để thực hiện điều này trong chế độ hàng loạt để maven tự động sử dụng bản phát hành liên quan. tức là nếu phụ thuộc là 1.0.0-SNAPSHOT, nó sẽ tự động cập nhật sự phụ thuộc này vào bản phát hành 1.0.0?

[INFO] Checking dependencies and plugins for snapshots ... 
There are still some remaining snapshot dependencies.: Do you want to resolve them now?  (yes/no) no: : yes 
Dependency type to resolve,: specify the selection number (0:All 1:Project Dependencies 2:Plugins 3:Reports 4:Extensions): (0/1/2/3) 1: : 1 
Resolve Project Dependency Snapshots.: 'com.my.project' set to release? (yes/no) yes: : yes 
What is the next development version? (0.0.2-SNAPSHOT) 0.0.2-SNAPSHOT: : 0.0.2-SNAPSHOT 
+0

Bạn đã cố gắng sử dụng chế độ -batch của mvn chưa? – khmarbaise

+0

Sẽ không giúp ích gì. – khmarbaise

Trả lời

5

Bạn có thể cập nhật SNAPSHOT qua versions-maven-plugin trước khi phát hành.

+0

Tôi đang đối mặt với cùng một plugin (phiên bản-maven-plugin 2.2) cho mục đích này. Nhưng, vì lý do nào đó, nó không hoạt động. Tôi chỉ đơn giản sử dụng - phiên bản: sử dụng bản phát hành và phiên bản ban đầu của dự án của tôi là 1.0.0-SNAPSHOT. Bất kỳ giải pháp cho điều đó? Cảm ơn!! –

3

Nếu phụ thuộc của bạn là một chương trình bạn sở hữu và vòng đời của nó được liên kết chặt chẽ với chương trình bạn cố gắng phát hành, bạn có thể nghĩ đến việc sử dụng dự án nhiều mô-đun: http://maven.apache.org/guides/mini/guide-multiple-modules.html. Plugin phát hành Maven sẽ cập nhật phiên bản cho tất cả các mô-đun phụ thuộc của bạn.

Nếu không, có thể bạn đang làm điều gì đó bạn không nên làm. Chỉ cần thay đổi 1.0.0-SNAPSHOT thành 1.0.0 không đảm bảo ứng dụng của bạn sẽ tiếp tục hoạt động. Vì vậy, không xem xét rằng Maven nên!

cân nhắc Hơn nữa

Maven phát hành Plugin kiểm tra nếu bạn đang sử dụng một sự phụ thuộc ảnh chụp, vì Snapshot, theo định nghĩa, là vesions không ổn định. Nó có thể thay đổi theo thời gian. Điều đó có nghĩa là những gì đã làm việc ngày hôm nay có thể không hoạt động vào ngày mai.

Phát hành có nghĩa là phiên bản của bạn ổn định và bản dựng có thể được tái tạo bất kỳ lúc nào mà không có bất kỳ thay đổi nào. Sử dụng phiên bản Snapshot, xác nhận này trở thành sai.

Vì vậy,

8

Lưu ý rằng bạn có thể cấu hình Maven bỏ qua phụ thuộc SNAPSHOT kiểm tra bằng cách sử dụng allowTimestampedSnapshots, theo tài liệu hướng dẫn maven-release-plugin:

allowTimestampedSnapshots:

Cho dù để cho phép phụ thuộc thời gian SNAPSHOT. Mặc định là không thành công khi tìm bất kỳ SNAPSHOT nào.

  • Loại: boolean
  • Từ: 2,0-beta-7
  • Yêu cầu: Không
  • Biểu hiện: $ {ignoreSnapshots}
  • Mặc định: false

Hoặc đơn giản chạy lệnh bên dưới:

mvn phát hành: chuẩn bị -DignoreSnapshots = true

Tuy nhiên, nó vẫn được khuyến khích để giải quyết tất cả phụ thuộc SNAPSHOT trước khi thực hiện việc phát hành chính thức, vì nó là quy ước được sử dụng bởi hầu hết mọi người.Bạn nên luôn luôn xem xét thực hiện thủ công ở giai đoạn phát triển hơn là tự động trộn ở giai đoạn phát hành, vì phụ thuộc của dự án thay đổi/nâng cấp (bình của bạn hoặc của bên thứ ba) đôi khi có thể gây lỗi hoặc không tương thích và phá vỡ dự án của bạn. và sửa chúng trước khi phát hành cuối cùng.

Nói cách khác, độ phân giải phụ thuộc không phải là một nhiệm vụ cần được thực hiện ở giai đoạn phát hành, hơn nữa, nó không phải là một nhiệm vụ cần được thực hiện tự động mà không có sự chú ý của nhà phát triển.

+0

Hoàn toàn đồng ý với bạn –

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