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>
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. –