Estoy usando maven como herramienta de construcción. He establecido una variable de entorno llamada env
. ¿Cómo puedo obtener acceso al valor de esta variable de entorno en el pom.xml
archivo?
java
maven
environment-variables
pom.xml
usuario1016403
fuente
fuente
${env.XYZ}
referencia en rojo. La variable se expande correctamente en tiempo de ejecución pero se muestra en rojo en tiempo de compilación. Por lo tanto, tengo la misma pregunta que se hizo originalmente.Respuestas:
Consulte la Guía de propiedades de Maven ...
Como Seshagiri señaló en los comentarios,
${env.VARIABLE_NAME}
hará lo que quiera.Agregaré una palabra de advertencia y diré que
pom.xml
debería describir completamente su proyecto, así que utilice las variables de entorno con prudencia. Si hace que sus compilaciones dependan de su entorno, son más difíciles de reproducirfuente
Puede ser más seguro pasar directamente las variables de entorno a las propiedades del sistema maven. Por ejemplo, supongamos que en Linux desea acceder a la variable de entorno MY_VARIABLE. Puede usar una propiedad del sistema en su archivo pom.
Establezca el valor de la propiedad en la línea de comando maven:
fuente
Además, asegúrese de que su variable de entorno esté compuesta solo por LETRAS MAYÚSCULAS ... No sé por qué (la documentación no dice nada explícito al respecto, al menos el enlace proporcionado por @Andrew White), pero si la variable es una palabra en minúscula (por ejemplo, env.dummy), la variable siempre vino vacía o nula ...
Estaba luchando con esto como una hora, hasta que decidí probar una VARIABLE DE CASO SUPERIOR, y el problema se resolvió.
OK Variables Ejemplos:
( NOTA : Estaba usando maven v3.0.5)
Espero que esto pueda ayudar a alguien ...
fuente
No podemos usar
fuente
Estaba luchando con lo mismo, ejecutando un script de shell que establece variables, y luego quería usar las variables en el pom compartido. El objetivo era que las variables de entorno reemplazaran las cadenas en los archivos de mi proyecto usando com.google.code.maven-replacecer-plugin.
Usar
${env.foo}
o${env.FOO}
no funcionó para mí. Maven simplemente no estaba encontrando la variable. Lo que funcionó fue pasar la variable como un parámetro de línea de comandos en Maven. Aquí está la configuración:Establezca la variable en el script de shell. Si está iniciando Maven en un subguión, asegúrese de que la variable se esté configurando, por ejemplo,
source ./maven_script.sh
para llamarla desde el guión principal.En shared-pom, cree un parámetro de línea de comandos que tome la variable de entorno:
En com.google.code.maven-replacer-plugin, realice el valor de reemplazo
${foo}
.En mi script de shell que llama a maven, agregue esto al comando:
-Dfoo=$foo
fuente
Puede usar la
<properties>
etiqueta para definir una variable personalizada y un${variable}
patrón para usarlafuente