2013-07-03 16 views
5

In POM genitore, ho:È possibile sovrascrivere le esecuzioni in maven pluginManagement?

<pluginManagement> 
      <plugin> 
       <artifactId>maven-resources-plugin</artifactId> 
       <version>2.5</version> 
       <executions> 
        <execution> 
         <id>execution 1</id> 
         ... 
        </execution> 
        <execution> 
         <id>execution 2</id> 
         ... 
        </execution> 
        <execution> 
         <id>execution 3</id> 
         ... 
        </execution> 
       </executions> 
      </plugin> 
     <pluginManagement> 

Le mie domande sono:

  1. E 'possibile disabilitare alcune <execution> in sotto-progetti, per esempio, eseguire solo execution 3 e saltare 1 e 2?
  2. È possibile ignorare completamente le esecuzioni nei sottoprogetti, ad es. Ho un nei miei sottoprogetti e voglio solo eseguire questo execution e non eseguire mai l'esecuzione 1,2,3 in POM padre.
+1

La soluzione consigliata proposta usin Le proprietà POM per progetto per l'attivazione del profilo non funzioneranno perché per questo possono essere utilizzate solo le proprietà globali del sistema. –

risposta

9

Un'opzione rapida è utilizzare <phase>none</phase> quando si esegue l'override di ciascuna esecuzione. Così, per esempio per eseguire l'esecuzione 3 solo si farebbe quanto segue nel pom:

<build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-resources-plugin</artifactId> 
     <version>2.5</version> 
     <executions> 
      <execution> 
       <id>execution 1</id> 
       <phase>none</phase> 
       ... 
      </execution> 
      <execution> 
       <id>execution 2</id> 
       <phase>none</phase> 
       ... 
      </execution> 
      <execution> 
       <id>execution 3</id> 
       ... 
      </execution> 
     </executions> 
    </plugin> 
    ... 
    </plugins> 
    ... 
</build> 

Va notato che questa non è una caratteristica ufficialmente documentato, quindi il supporto per questo potrebbe essere rimosso in qualsiasi momento.

Il consiglio soluzione sarebbe probabilmente definire profiles che hanno activation sezioni definite:

<profile> 
    <id>execution3</id> 
    <activation> 
    <property> 
     <name>maven.resources.plugin.execution3</name> 
     <value>true</value> 
    </property> 
    </activation> 
    ... 

Il nel progetto sub si sarebbe solo impostare le proprietà richieste:

<properties> 
    <maven.resources.plugin.execution3>true</maven.resources.plugin.execution3> 
</properties> 

Maggiori dettagli sul profilo l'attivazione può essere trovata qui: http://maven.apache.org/settings.html#Activation

Problemi correlati