2011-01-25 18 views
6

Goal

Multimodule maven phát hành với các thẻ cho mỗi mô-đunMaven thiết lập phát hành với các thẻ svn mỗi mô-đun

Tình hình

Giả sử cấu trúc dự án sau cho một dự án Java Maven dựa trên:

xx-parent 
xx-moduleA 
xx-moduleB 
xx-moduleC/submodule1 
xx-moduleC/submodule2 
xx-moduleC/submodule3 

Cấu trúc dự án trong Subversion như sau:

xx-parent/trunk 
xx-moduleA/trunk 
xx-moduleB/trunk 
xx-moduleC/trunk/submodule1 
xx-moduleC/trunk/submodule2 
xx-moduleC/trunk/submodule3 

Mục tiêu của tôi là tạo ra thẻ mỗi mô-đun khi thực hiện một thông cáo:

xx-parent/tags/xx-parent-1.0 
xx-moduleA/tags/xx-moduleA-1.0 
xx-moduleB/tags/xx-moduleB-1.0 
xx-moduleC/tags/xx-moduleC-1.0 

Trong quá khứ, mỗi module được xây dựng và phát hành riêng lẻ. Khi dự án phát triển lớn hơn (30 mô-đun), thời gian để xây dựng một bản phát hành tăng lên. Tôi muốn thay đổi dự án thành một mô-đun đa được thiết lập để thực hiện xây dựng và phát hành lò phản ứng. Xây dựng dường như không phải là một vấn đề, nhưng tạo thẻ cho mỗi mô-đun là.

Trình giải phóng maven-plugin dường như nhấn mạnh vào việc chỉ tạo một thẻ duy nhất cho toàn bộ dự án/bản phát hành. Tôi đang tìm cách tạo nhiều thẻ, ví dụ: một thẻ cho mỗi mô-đun.

Những gì tôi đã cố gắng cho đến nay

  • Tạo một xx-tất cả các bí danh Subversion, mà kiểm tra ra tất cả các tiểu mô-đun, vì vậy tôi có thể tham khảo chúng với <module>../xx-moduleB</module>
  • Kích hoạt commitByProject, mà đã cam kết mỗi mô-đun , nhưng không phải thẻ cho mỗi mô-đun. Xem
  • Mỗi mô-đun có các thành phần <scm> riêng trong pom.xml, nhưng chúng không được sử dụng khi thực hiện phát hành lò phản ứng.
  • mvn --batch-mode -DcommitPerProject=true -DautoVersionSubmodules=true -Drelease.version=1.0.6 release:prepare release:perform

vấn đề

  • maven-release-plugin không tạo ra một thẻ svn mỗi mô-đun
  • maven-release-Plugin ghi đè thẻ <scm> với URL không hợp lệ, ví dụ lồng nhau "thân cây" -tags dưới thẻ xx-mẹ

Câu hỏi

Làm thế nào tôi có thể thiết lập dự án này với một quá trình phát hành Maven, một bố cục đa mô-đun và vẫn nhận được thẻ riêng biệt cho mỗi mô-đun?

Tài liệu tham khảo

http://jira.codehaus.org/browse/MRELEASE-261 (Closed) và MRELEASE-561 (Open)

+0

+1 được viết rất độc đáo và chính xác là vấn đề tôi đang gặp phải! Hy vọng có một sự cải thiện trong những năm qua – avalancha

Trả lời

1

Theo Arnaud Héritier (một thành viên Apache Maven PMC),
Maven không thể xử lý các ứng dụng hỗn hợp như module- Một v0.1, module-B v0.3.
Maven xem xét dự án và tất cả các mô-đun phụ của mình dưới dạng tập hợp duy nhất.

xem: http://blog.aheritier.net/maven-release-plugin-2-0/ (9 tháng 6 năm 2010)

Có lẽ tình hình đã thay đổi kể từ với Maven 3?