Cài đặt POM mẹ mà không cần xây dựng các mô-đun Con


115

Tôi có POM mẹ trong một dự án Maven, với cấu trúc này:

             parent
               |
        ---------------
        |             |
      child1       child2

Tôi muốn cài đặt POM của "cha" trong REPO cục bộ để cho phép child1 thực hiện một số thay đổi mà tôi đã thực hiện trong dependencyManagement, nhưng tôi không thể thực hiện "cài đặt sạch" thường xuyên"child2" bị hỏng và sẽ không được xây dựng.

Đâu là cách thích hợp để thực hiện việc này với maven (ngoài việc truy cập vào pom mẹ và nhận xét mô-đun "child2" ).

Câu trả lời:


191

Sử dụng tùy chọn '-N' trong lệnh mvn.

Từ mvn -h:

-N, - không đệ quy Không đệ quy vào các dự án con


1
Tùy chọn '-N' hoặc '--non-recursive' có nghĩa là không đệ quy vào các dự án con.
STB Land

36

Mặc dù Guillaume thực sự đúng và đó là lựa chọn chính xác, cá nhân tôi khuyên bạn nên giữ cha mẹ của bạn như một mô-đun riêng biệt.

Tôi thấy cách tiếp cận tốt nhất để thừa kế như sau:

aggregator
|- module1/ (extends parent)
| |- pom.xml
|- module2/ (extends parent)
| |- pom.xml
|- parent/
| |- pom.xml
|- pom.xml

Bằng cách này, bạn luôn có thể cài đặt chỉ cha mẹ mvn clean installmà không có tùy chọn bổ sung.

Bạn cũng có thể có cấp độ gốc bên ngoài bộ tổng hợp để bạn có thể sử dụng lại nó giữa các dự án khác.

Có rất nhiều lợi ích khi giữ trang gốc và trình tổng hợp như hai thứ riêng biệt. Nhưng cuối cùng, bạn chọn những gì tốt nhất cho dự án / môi trường của bạn.


1
Tôi đã vật lộn với vấn đề này trong nhiều giờ và nhận thấy rằng một số dự án đang thực hiện theo cách này, chẳng hạn như apache sling, JackRabbit và Artifactory.
accuya

Nó cách ly sự kế thừa mô-đun maven (phụ thuộc, thuộc tính, v.v.) khỏi xây dựng hàng loạt (mô-đun con).
Danubian Sailor

4
Đây có được coi là phương pháp hay nhất không? Bất kỳ blog hoặc khác về cách tiếp cận này?
Xe trượt tuyết vào

1
@ArtB Bạn có tình cờ gặp một bài báo như vậy trong khi chờ đợi không?
Tomislav Nakic-Alfirevic

4
@MaximilianSchulz: Không có thế giới hoàn hảo, như người ta nói ... Đây chỉ là một lựa chọn để làm điều đó.
carlspring
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.