Để thực hiện điều này với cấu hình, bạn có thể sử dụng hai cấu hình, một <activeByDefault>
với tất cả các mô-đun và một mô-đun khác chỉ với mô đun mong muốn. Một cái gì đó như thế này:
<profiles>
<profile>
<id>all</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>module-1</module>
...
<module>module-n</module>
</modules>
</profile>
<profile>
<id>module-2</id>
<modules>
<module>module-2</module>
</modules>
</profile>
<profiles>
Và sau đó gọi nó như thế này:
mvn -Pmodule-2 package
Hai điều cần lưu ý ở đây:
- Bạn cần phải di chuyển
<modules>
từ POM trong một "mặc định "hồ sơ (vì <modules>
từ tiểu sử chỉ là phụ gia, chúng không ẩn các mô-đun được khai báo trong POM).
- Bằng cách đánh dấu nó là
<activeByDefault>
, cấu hình "mặc định" sẽ được chọn nếu không có gì khác đang hoạt động nhưng bị hủy kích hoạt nếu có thứ khác.
Một thậm chí có thể parametrize tên của các mô-đun và vượt qua nó như bất động sản:
<profiles>
...
<profile>
<id>module-x</id>
<activation>
<property>
<name>module-name</name>
</property>
</activation>
<modules>
<module>${module-name}</module>
</modules>
</profile>
<profiles>
Và gọi maven như thế này:
mvn -Dmodule-name=module-2 package
Nhưng đây là một thực hiện IMHO nghèo, tôi thích các tùy chọn lò phản ứng "cao cấp" -pl
(ít xml, nhiều năng lượng và linh hoạt hơn):
mvn -pl module-2 package
Nguồn
2010-03-08 13:14:07
@Pascal Thivent Chỉ cần rực rỡ .. Tôi không biết phải nói gì .. cảm ơn bạn m8, bạn không ai sánh kịp khi nói đến maven – ant
Tôi đồng ý @Pascal là một thiên tài maven. Tôi cũng sẽ thêm tiếng nói rằng nó sạch hơn để sử dụng một lò phản ứng xây dựng hơn cấu hình nhiều hồ sơ. –