Czy można dołączyć kilka mniejszych plików pom, aby utworzyć macierzysty plik pom. Chciałbym podzielić raportowanie, zbudować sekcje na własne poms i uwzględnić je w macierzystej pom), aby skutecznie nimi zarządzać.Czy można dzielić pliki maven pom?
Odpowiedz
Jeśli używasz Maven 2, możesz po prostu utworzyć kilka poziomów nadrzędnych. Pierwszy (pom.xml
(pom1) określi podstawowe właściwości (na przykład repozytoria). Drugie urządzenie o nazwie pom.xml
(pom2), które ma pom1 jako <parent>
, zdefiniuje informacje raportowania. I tak dalej ... Ostatecznie "prawdziwy" pom.xml
odziedziczy po pom2 i zdefiniuje własne właściwości.
Możesz utworzyć dowolną liczbę poziomów dla rodziców (oczywiście, będzie trudniej zachować, jeśli masz 5 poziomów dla rodziców).
Zauważ, że Maven 3 rozmawialiśmy o wprowadzenie mixin concept, który pozwoli Ci fragment swoją pom.xml
na kilka plików, ale wygląda na to that is not happening now until maven 4
Niezupełnie. Nie możesz uwzględnić raportowania i tworzenia sekcji zdefiniowanych w mniejszych POM, możesz tylko inherit them from a parent POM.
Jeśli twój POM jest zbyt duży, możliwe (i zalecane) jest rozmieszczenie zależności w grupach logicznych. Na przykład, dla projektu GWT, można utworzyć nowy POM dla całej swojej wytrwałości związanej z GWT następująco:
<project>
<groupId>org.yourcompany</groupId>
<artifactId>gwt-dependencies</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>com.google</groupId>
<artifactId>gwt-user</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.extjs</groupId>
<artifactId>gxt</artifactId>
<version>2.1.0</version>
</dependency>
<!-- etc -->
</dependencies>
</project>
Te grupy mogą być zawarte w głównej POM.
Zobacz także: http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-best-practice.html –
Niedawno możliwe stało się użycie opcji Maven Tiles. Wtyczka pozwoli ci wykonywać operacje mixin nie dostarczone przez Mavena 3. Jednak każdy mixin wymaga uwolnionego artefaktu.
Zgadnij, poczekam na funkcję mixin w Maven 3 – Joe
@Joshua Maven 3 jest już dostępna, nawet jeśli jest to wersja beta, jest dość stabilna. Maven 3 oferuje 100% kompatybilność z Maven 2 'pom.xml'. Jest już używany przez najnowsze wersje NetBeans, m2eclipse lub IntelliJ. – romaintaz
Maven 3.0 nie oferuje jeszcze mixin * jeszcze *. –