Ceci est un extrait de mon fichier pom.xml. J'ai essayé ce qui suit, mais le profil n'a pas été activé.
mvn clean install -Pdev1
mvn clean install -P dev1
Lorsque j'ai essayé mvn help:active-profiles
, aucun profil n'a été répertorié comme actif. Si je règle <activeByDefault>
pour dev1
sur true
, et que je lance mvn help:active-profiles
, le profil est activé.
<profile>
<id>dev1</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<env>local</env>
<properties.file>src/test/resources/dev1.properties</properties.file>
</systemPropertyVariables>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/dev1.testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>dev2</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<env>local</env>
<properties.file>src/test/resources/dev2.properties</properties.file>
</systemPropertyVariables>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/dev2.testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
</profile>
Je me demande pourquoi mon profil n'est pas activé. Quelqu'un at-il rencontré un problème similaire?
Vous ne le verrez pas avec
mvn help:active-profiles
car il n'y a pas de -Pdev1
dans la commande.
Vous le verriez avec mvn help:active-profiles -Pdev1
(mais cela n'a évidemment aucun sens).
Les commandes que vous avez montrées:
mvn clean install -Pdev1
mvn clean install -P dev1
sont corrects. Le problème est probablement pas que le profil n'est pas activé, mais plutôt qu'il ne fait pas ce que vous attendez.
Pour vous assurer que c'est bien le cas, vous pouvez définir activeByDefault
sur true sur le profil, puis lancer mvn help:active-profiles
pour voir qu'il est activé, puis lancer mvn install
et cocher si le profil fait ce que vous attendez (ce qui encore n'est probablement pas le cas).
L'activation par les propriétés du système peut être effectuée comme suit
<activation>
<property>
<name>foo</name>
<value>bar</value>
</property>
</activation>
Et lancez la construction mvn avec -D pour définir la propriété système
mvn clean install -Dfoo=bar
Cette méthode permet également de sélectionner des profils en dépendance transitive d'artefacts de projet.
J'ai rencontré ce problème et j'ai résolu le problème mentionné en ajoutant le paramètre -DprofileIdEnabled=true
lors de l'exécution de la commande mvn cli.
Veuillez exécuter votre commande mvn cli en tant que: mvn clean install -Pdev1 -DprofileIdEnabled=true
.
En plus de cette solution, vous n'avez pas besoin de supprimer les paramètres activeByDefault de votre POM mentionnés dans la réponse précédente.
J'espère que cette réponse résoudra votre problème.
Supprimez simplement la section d'activation, je ne sais pas pourquoi -Pdev1 ne remplace pas l'activation par défaut. Mais si vous omettez ceci:
<activation> <activeByDefault>false</activeByDefault> </activation>
alors votre profil sera activé seulement après une déclaration explicite en tant que -Pdev1