Dies ist ein Ausschnitt aus meiner pom.xml. Ich habe Folgendes versucht, aber das Profil wurde nicht aktiviert.
mvn clean install -Pdev1
mvn clean install -P dev1
Als ich es versuchte, wurden mvn help:active-profiles
keine Profile als aktiv aufgeführt. Wenn ich eingestellt <activeByDefault>
für dev1
auf true
und laufen mvn help:active-profiles
, es zeigt mir das Profil aktiviert ist.
<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>
Ich frage mich, warum mein Profil nicht aktiviert wird. Hat jemand ein ähnliches Problem festgestellt?
-P
funktioniert wie erwartet ... FWIW ...Antworten:
Beide Befehle sind korrekt:
Das Problem ist höchstwahrscheinlich nicht die Profilaktivierung, aber das Profil erreicht nicht das, was Sie erwarten .
Es ist normal, dass der Befehl:
zeigt das Profil nicht an, da es nicht enthält
-Pdev1
. Sie könnten es hinzufügen, um das Profil erscheinen zu lassen, aber es wäre sinnlos, weil Sie Maven selbst testen würden.Sie sollten das Profilverhalten folgendermaßen überprüfen :
activeByDefault
umtrue
in der Profilkonfiguration,mvn help:active-profiles
(um sicherzustellen, dass es auch ohne aktiviert ist-Pdev1
),mvn install
.Es sollte die gleichen Ergebnisse wie zuvor liefern und daher bestätigen, dass das Problem darin besteht, dass das Profil nicht das tut, was Sie erwarten.
quelle
Die Aktivierung durch Systemeigenschaften kann wie folgt erfolgen
<activation> <property> <name>foo</name> <value>bar</value> </property> </activation>
Führen Sie den mvn-Build mit -D aus, um die Systemeigenschaft festzulegen
Diese Methode hilft auch bei der Auswahl von Profilen in der transitiven Abhängigkeit von Projektartefakten.
quelle
Ich bin auf dieses Problem gestoßen und habe das erwähnte Problem durch Hinzufügen eines
-DprofileIdEnabled=true
Parameters beim Ausführen des Befehls mvn cli gelöst .Bitte führen Sie Ihren Befehl mvn cli wie folgt aus :
mvn clean install -Pdev1 -DprofileIdEnabled=true
.Zusätzlich zu dieser Lösung müssen Sie die ActiveByDefault- Einstellungen in Ihrem POM nicht entfernen, die als vorherige Antwort angegeben wurden.
Ich hoffe, diese Antwort löst Ihr Problem.
quelle
Entfernen Sie einfach den Aktivierungsabschnitt. Ich weiß nicht, warum -Pdev1 die falsche Standardaktivierung nicht überschreibt. Aber wenn Sie dies weglassen:
<activation> <activeByDefault>false</activeByDefault> </activation>
dann wird Ihr Profil erst nach expliziter Deklaration als -Pdev1 aktiviert
quelle