Tôi đang cố gắng tìm ra cách tổ chức nhiều (khoảng 50+) dự án maven2, để chúng có thể triển khai vào kho lưu trữ trung tâm. Khi sử dụng các mục tiêu mvn deploy
, người ta cần phải xác định mục tiêu trong thẻ distributionManagement như thế này:Làm thế nào để xác định tổ chức phân phối quản lý của maven rộng?
<distributionManagement>
<repository>
<id>nexus-site</id>
<url>http://central_nexus/server</url>
</repository>
</distributionManagement>
Bây giờ, tôi không muốn mọi pom.xml duy nhất (của những 50+) để chứa khối này trên và hơn nữa. Đầu tiên của tôi mặc dù sẽ là tập tin settings.xml
, nhưng có vẻ như nó là không thể (theo thiết kế) để xác định nó ở đó. Vì vậy, câu hỏi đầu tiên sẽ là, tại sao là trường hợp? Nếu có thể tôi có thể chỉ định nó trong tệp settings.xml trong bản phân phối maven2, có thể được phân phối cho tất cả các nhà phát triển.
Giải pháp duy nhất tôi tìm được là tạo một dự án tổng thể toàn bộ tổ chức, có chứa các cài đặt này và làm cho tất cả các tệp pom.xml khác phụ thuộc vào thẻ chính này thông qua thẻ <parent>
. Nhưng điều này có vẻ lạ trong các bản dựng nhiều mô-đun:
- master configuration POM (pm)
- Project 1 parent pom (p1 with module 1 and module 2 as modules)
- Project 1 module pom (with pm as parent)
- Project 2 module pom (with pm as parent)
Thông thường tôi đọc tất cả tài liệu mà poms mô-đun nên sử dụng pom mẹ chứ không phải một số khác. Nhưng sau khi đọc trang web maven về Inheritance v. Aggregation nó được viết rằng nó thực sự là có thể.
Một vấn đề tôi tìm thấy là với thế hệ trang web maven, mà dường như có vấn đề với thiết lập này (module không được liên kết một cách chính xác nếu họ không có back-tham chiếu trực tiếp)
Vì vậy, đây là một hợp lệ tiếp cận ? Bất kỳ giải pháp nào khác, rõ ràng hơn, đơn giản hơn cho vấn đề này?
http://maven.apache.org/pom.html#Distribution_Management – OhadR
@OhadR: Chúng chỉ viết cách viết trong một dự án. Điểm là tôi không muốn sao chép nó khoảng 500 lần ... – mglauche
tôi hiểu. lấy điểm. Vì vậy, như một trong những người trả lời cho biết, bạn có thể có một pom chính cho dự án, mà sẽ chứa 'distribMngmnt' ... – OhadR