2010-02-16 26 views
23

¿Es posible incluir varios archivos pom más pequeños para crear el archivo pom padre. (Por ejemplo, me gustaría dividir los informes, crear secciones en sus propios poms e incluirlos en el pom padre) para administrarlos efectivamente¿Es posible dividir los archivos maven pom?

Respuesta

14

Si está utilizando Maven 2, puede simplemente crear varios niveles principales. El primer pom.xml (pom1) definirá las propiedades básicas (como repositorios, por ejemplo). El segundo pom.xml (pom2), que tiene pom1 como <parent>, definirá la información de informe. Y así sucesivamente ... Finalmente, el "verdadero" pom.xml heredará del pom2 y definirá sus propias propiedades.

Puede crear tantos niveles de padres como desee (por supuesto, será más difícil de mantener si usted tiene 5 niveles de padres).

Tenga en cuenta que Maven 3 habló de la introducción de la mixin concept, lo que le permitirá a fragmentar su pom.xml en varios archivos, pero parece que that is not happening now until maven 4

+1

Adivina, esperaré la función mixin en Maven 3 – Joe

+0

@Joshua Maven 3 ya está disponible, incluso si es una versión beta, es bastante estable. Maven 3 ofrece una compatibilidad del 100% con Maven 2 'pom.xml'. Ya es utilizado por las últimas versiones de NetBeans, m2eclipse o IntelliJ. – romaintaz

+3

Maven 3.0 no ofrece mixins * todavía *, sin embargo. –

5
No

bastante. No puede incluir secciones de creación y creación de informes definidas en POM más pequeños, solo puede inherit them from a parent POM.
Si su POM es demasiado grande, es posible (y recomendado) organizar sus dependencias en grupos lógicos. Por ejemplo, para un proyecto GWT, se podría crear un nuevo POM para la totalidad de su persistencia en relación con GWT de la siguiente manera:

<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> 

Estos grupos se pueden incluir en su POM principal.

+1

Vea también: http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-best-practice.html –

1

Más recientemente, la opción de usar Maven Tiles ha llegado a ser posible. El complemento le permitirá realizar las operaciones de mixin no proporcionadas por Maven 3. Sin embargo, cada mixin requiere un artefacto de mosaico liberado.

Cuestiones relacionadas