Mi sugerencia es que se crea un POM madre de la que sus proyectos pueden obtener su configuración. Este POM padre es simplemente otro proyecto de Maven 2, pero con el tipo "pom" en lugar de "jar".
Por ejemplo, usted podría tener un pom padres así:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.company.projectname</groupId>
<artifactId>projectname</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<name>projectname</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<superprop1>this property is available in all child projects</superprop1>
<superprop2>this property is available in all child projects</superprop2>
<superprop3>this property is available in all child projects</superprop3>
</properties>
</project>
Y un niño del proyecto podría tener este aspecto:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>projectname</artifactId>
<groupId>com.company.projectname</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>child-project</artifactId>
<packaging>jar</packaging>
<name>child-project</name>
<description>
My child project
</description>
</project>
Todo lo que se declara en el POM padre es ahora disponible en el pom de niño. En el ejemplo sobre, el proyecto secundario tendrá automáticamente la dependencia JUnit disponible. Hacerlo de esta manera también asegurará que el entorno se calcule automáticamente en comparación con si cada desarrollador tuviera que meterse con el super POM de su instalación de Maven.