Este es un fragmento de mi pom.xml. Intenté lo siguiente, pero el perfil no se activó.
mvn clean install -Pdev1
mvn clean install -P dev1
Cuando probé, mvn help:active-profiles
ningún perfil aparecía como activo. Si fijo <activeByDefault>
para dev1
a true
, y correr mvn help:active-profiles
, que me muestra el perfil se activa.
<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>
Me pregunto por qué no se activa mi perfil. ¿Alguien ha encontrado un problema similar?
-P
funciona como se esperaba ... FWIW ...Respuestas:
Ambos comandos son correctos:
Lo más probable es que el problema no sea la activación del perfil, sino que el perfil no logre lo que espera .
Es normal que el comando:
no muestra el perfil, porque no contiene
-Pdev1
. Podría agregarlo para que aparezca el perfil, pero no tendría sentido porque estaría probando maven.Lo que debe hacer es verificar el comportamiento del perfil haciendo lo siguiente:
activeByDefault
entrue
en la configuración del perfil,mvn help:active-profiles
(para asegurarse de que esté efectivamente activado incluso sin-Pdev1
),mvn install
.Debería dar los mismos resultados que antes y, por lo tanto, confirmar que el problema es que el perfil no está haciendo lo que espera.
fuente
La activación por propiedades del sistema se puede realizar de la siguiente manera
<activation> <property> <name>foo</name> <value>bar</value> </property> </activation>
Y ejecute mvn build con -D para establecer la propiedad del sistema
Este método también ayuda a seleccionar perfiles en dependencia transitiva de los artefactos del proyecto.
fuente
Encontré este problema y resolví el problema mencionado agregando un
-DprofileIdEnabled=true
parámetro mientras ejecutaba el comando mvn cli.Por favor, ejecute el comando CLI mvn como:
mvn clean install -Pdev1 -DprofileIdEnabled=true
.Además de esta solución, no es necesario que elimine la configuración activeByDefault en su POM mencionado como respuesta anterior.
Espero que esta respuesta resuelva tu problema.
fuente
Simplemente elimine la sección de activación, no sé por qué -Pdev1 no anula la activación falsa predeterminada. Pero si omite esto:
<activation> <activeByDefault>false</activeByDefault> </activation>
entonces su perfil se activará solo después de una declaración explícita como -Pdev1
fuente