maven-2 - que - perfiles maven
Activación del perfil de Maven con múltiples condiciones. (3)
El bloque Maven <activation>
es una lista de OR
: el perfil se activará tan pronto como se cumpla el primer criterio. Por lo tanto, es menos probable que su problema tenga una solución al menos hasta que se solucione este informe de errores https://issues.apache.org/jira/browse/MNG-4565
Actualizar:
está arreglado en 3.2.2 ahora - sfussenegger (a través de comentario)
Estoy trabajando para configurar el complemento rpm-maven en un proyecto. En nuestros entornos de preparación y producción, la compilación se produce en los cuadros de Red Hat, pero tenemos varios cuadros de Windows que se utilizan para el desarrollo y las pruebas, por lo que quería que el proceso de construcción de RPM formara parte de un perfil que solo está activo en un cuadro rpmbuild instalado.
Este fue mi primer intento de una condición de activación:
<activation>
<os>
<family>unix</family>
</os>
<file>
<exists>/usr/bin/rpmbuild</exists>
</file>
</activation>
Mis pruebas iniciales solo incluían construir en una caja de Windows y en una caja de CentOS, y ambas me dieron los resultados que esperaba. Más tarde, la compilación se rompió en una máquina Linux que no tenía rpmbuild disponible. Parece que tener dos condiciones como esta no es compatible. ¿Es este el caso? Me doy cuenta de que probablemente pueda deshacerme del elemento <os/>
y obtener los resultados que quiero, pero para futuras referencias, ¿existe una mejor manera de crear perfiles con múltiples condiciones de activación?
Sólo arreglado por mí :)
A partir de la versión 3.2.2 funcionará como se esperaba: se cumplirán las condiciones múltiples ANDed
Referencia - https://github.com/apache/maven/commits/master , busque por MNG-4565
Y lo peor es que puede mezclar condiciones de diferente tipo, por ejemplo, archivo, jdk y propiedad, como se describe aquí, http://www.sonatype.com/books/mvnref-book/reference/profiles-sect-activation.html , pero no puede Incluso poner dos condiciones del mismo tipo, por ejemplo dos propiedades.
<activation>
<property>
<name>integrationTest</name>
</property>
<property>
<name>packaging</name>
<value>swf</value>
</property>
</activation>
Esto no funcionará ya que solo se permitirá una etiqueta <property>
. JIRA asociado: https://issues.apache.org/jira/browse/MNG-3328
Y el error descrito anteriormente todavía está abierto ... ¡5 años es una pena!