Selección de perfiles por proyectos maven

Tengo muchos proyectos maven. Tengo dos configuraciones globales.xml diferentes para ellos que necesito fusionar. Ambos describen sus repositorios dentro de los perfiles. Fusioné los dos settings.xml por los espejos y las etiquetas de perfiles. Uno de los perfiles es activado por la etiqueta activeProfile en el archivo settings.xml.

Quiero preguntarle, ¿cómo puedo cambiar el perfil activo en los diferentes proyectos? ¿Puedo seleccionarlo en el archivo del proyecto pom.xml?

Gracias, hermano Stristi

Respuesta 1

Este documento describe cómo se pueden activar los perfiles: Introducción a la creación de perfiles .

Puede activar perfiles a través de variables de entorno, pero si tiene muchos proyectos y desea aplicar perfiles por proyecto, entonces es una solución de falla cambiar la variable de entorno antes de cada ejecución de compilación de proyecto por separado. Si está trabajando con IDE, puede configurar la configuración de inicio para establecer la propiedad para cada proyecto, y debe configurar el comando mvn run correcto dentro de una integración continua para cada proyecto. Sin embargo, eso haría imposible construir una compilación agregada que constara de diferentes proyectos que deberían ser activados por diferentes perfiles.

Una posible solución alternativa (que no parece ser elegante, pero estoy bastante seguro de que funcionará) es activar perfiles basados ​​en la presencia de archivos y administrar dichos 'archivos marcadores' para diferentes proyectos para activar el requerido. Por ejemplo:

<profiles>
  <profile>
    <activation>
      <file>
        <exists>.profile-A</exists>
      </file>
    </activation>
    ...
  </profile>
</profiles>

Comportamiento esperado: este perfil se activa si existe un archivo con el nombre '.profile-A' en una carpeta raíz de un proyecto.

Sin embargo, en este punto surge una pregunta más interesante: ¿cuál sería el comportamiento en caso de compilación agregada?

Respuesta: 2

Parece que necesita usar un Administrador de repositorio ( Archiva , Artifactory , orden alfabético Nexus ) para tener una única configuración en su archivo settings.xml. Esto resolverá el problema de hacer que su entorno de archivos de compilación dependa.

Respuesta: 3

Prefiero de esta manera en mis proyectos:

<profile>
  <id>dev</id>
  <activation>
    <property>
      <name>env</name>
      <value>dev</value>
    </property>
  </activation>
  ...
</profile>

Entonces puedes activarlo de esta manera:

mvn your_goal -Denv=dev

Saludos,

Boskop

Respuesta: 4

Estoy tratando de construir mi primer widget de Android, es un ícono simple, en el que cuando hago clic en algo pasa, en "algo" estoy usando el servicio. Todo va bien, pero tengo un pequeño problema, que yo ...

Tengo el siguiente REGEX que estoy sirviendo a Java a través de un archivo xml. [a-zA-Z - \ (\) \ -] + Esta expresión regular se utiliza para validar el lado del servidor y el lado del cliente (a través de JavaScript) y funciona bastante bien en ...

Tengo una pregunta sobre JMS en Camel. Así que estoy usando JMS proporcionado por alguna empresa. Pero esta implementación de JMS no proporciona la Fábrica de conexiones agrupadas. Entonces, ¿camello se ha agrupado por defecto ...

Tengo una clase que hace algo (inicialización) cuando mi aplicación se inicia por primera vez. Este código de inicialización está presente en un bloque estático. Por lo tanto, normalmente debería ejecutarse solo una vez cuando la clase se carga para ...