2012-05-09 8 views
21

Attualmente sto facendo un po 'di pulizia dei progetti Java che usano Maven, e uso l'IDE NetBeans per risolvere i problemi di' debug 'nel POM. Ho impostato Maven 3.0.4 nell'IDE come versione di Maven, ma altri sviluppatori o il nostro sistema di Interscambio continuo potrebbero avere impostazioni diverse.Può e dovrebbe un Maven POM specificare se richiede Maven 3 o più recente?

E 'possibile "applicare" una specifica versione di Maven direttamente nel POM (ad esempio utilizzando un elemento specifico di Maven 3)?

risposta

23

Sì, è possibile e si dovrebbe. Alcuni plugin Maven richiedono Maven 3 o successivi.

Utilizzare il Maven-enforcer-plugin aggiungendo quanto segue al 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

La cosa migliore che puoi fare è quello di utilizzare Enforcer plugin. Ecco un esempio:
http://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html

Non esiste un metodo pronto per l'uso in Maven. C'è in realtà il tag prerequisites ma non funziona bene, perché i bambini non lo ereditano.

+0

essere consapevoli di compresi i collegamenti in quanto possono morire ... e notare c'era già un'altra risposta che include il frammento di rilevante. – Barett