2011-09-08 10 views
11

Ho due profili profilo Maven-A e profilo-B. "B" dovrebbe essere attivato solo se "A" non è attivato. Quindi, se io chiamereiMaven: attiva il profilo A solo se il profilo B non è attivato?

mvn install 

profilo-B viene eseguito (ma non il profilo-A). Ma se io chiamerei

mvn install -Pprofile-A 

allora solo profilo-A viene eseguito (ma non di Profilo B).

Qualche suggerimento su come ho bisogno di scrivere il mio pom.xml per raggiungere questo obiettivo?

Ho già provato questo, ma non funziona:

<profiles> 
    <profile> 
    <id>profile-A</id> 
    <activation> 
     <activeByDefault>false</activeByDefault> 
    </activation> 
    ... 
    </profile> 

    <profile> 
    <id>profile-B</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
     <property> 
     <name>!profile-A</name> 
     </property>  
     ... 
    </activation> 
    ... 
    </profile> 
</profiles> 

risposta

8

Credo che per la riga di comando esempio funzioni come previsto, tutto ciò che serve è la <activeByDefault>true</activeByDefault> per il profilo B.

http://maven.apache.org/guides/introduction/introduction-to-profiles.html Stati membri:

Tutti i profili che sono attivi di default vengono automaticamente disattivati ​​quando un profilo in POM viene attivato sulla riga di comando o tramite il suo conteggio di attivazione Figura.

+0

Volevo solo chiarire un punto che mi ha bloccato per circa 15 minuti. Dall'ultima versione del link precedente riguardante 'activeByDefault' (emphasis mine):" Questo profilo sarà automaticamente attivo per tutte le build a meno che un altro profilo ** nello stesso POM ** venga attivato utilizzando uno dei metodi precedentemente descritti. " Nel mio caso, ho aggiunto il profilo B al padre POM e il profilo A a un POM foglia in una build multi-modulo. In questa configurazione, il profilo B non era disabilitato quando il profilo A era attivato tramite la riga di comando. Lo spostamento dei profili A e B sullo stesso POM ha prodotto il comportamento desiderato. –

Problemi correlati