2012-05-09 6 views
21

Actualmente estoy haciendo una limpieza de los proyectos de Java que usan Maven, y uso NetBeans IDE para 'depurar' problemas en el POM. He configurado Maven 3.0.4 en el IDE como la versión de Maven, pero otros desarrolladores o nuestro sistema de Intérprete continuo pueden tener configuraciones diferentes.¿Puede y debe un Maven POM especificar si requiere Maven 3 o posterior?

¿Es posible 'aplicar' una versión específica de Maven directamente en el POM (por ejemplo, utilizando un elemento específico de Maven 3)?

Respuesta

23

Sí, puedes y deberías. Algunos complementos Maven requieren Maven 3 o posterior.

Uso del experto-ejecutor-plugin añadiendo lo siguiente a su pom.xml:

<build> 
    <plugins> 
    <plugin> 
     <inherited>true</inherited> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-enforcer-plugin</artifactId> 
     <version>1.3.1</version> 
     <executions> 
      <execution> 
      <id>enforce-maven-3</id> 
      <goals> 
       <goal>enforce</goal> 
      </goals> 
      <configuration> 
       <rules> 
       <requireMavenVersion> 
        <version>3.0.5</version> 
       </requireMavenVersion>     
       </rules> 
       <fail>true</fail> 
      </configuration> 
      </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 
5

Lo mejor que puede hacer es utilizar Enforcer plugin. Aquí hay un ejemplo:
http://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html

No existe un método listo para usar en Maven mismo para hacer esto. En realidad, hay una etiqueta prerequisites, pero no funciona bien, porque los niños no la heredan.

+0

ser conscientes de que incluye enlaces, ya que pueden morir ... y fichas ya existía otra respuesta que incluye el fragmento relevante. – Barett