Jenkins: cómo usar una variable de un shell precompilado en los "Objetivos y opciones" de Maven
Tengo un trabajo de Maven en Jenkins. Antes del paso de compilación real, tengo un paso de precompilación "Ejecutar shell". En ese shell establezco una variable:
REVISION=$(cat .build_revision)
Me gustaría usar esa variable en el trabajo de compilación de Maven en "Objetivos y opciones":
clean install -Drevision=${REVISION}
¡Pero eso no funciona! "Drevision" se establece en "$ {REVISION}" no en el valor real de $ {REVISION}. Salida:
Executing Maven: -B -f /home/gerrit/.jenkins/jobs/<job_name>/workspace/pom.xml clean install -Drevision=${REVISION}
Funciona con variables de entorno Jenkins:
clean install -Dbuild=${BUILD_NUMBER}
Establece "Dbuild" al número de compilación real. Salida:
Executing Maven: -B -f /home/gerrit/.jenkins/jobs/<job_name>/workspace/pom.xml clean install -Dbuild=54
Mi pregunta: ¿Cómo usar una variable de shell en Maven "Objetivos y opciones"?
EDITAR:
Traté de usarJenkins EnvInject Plugin para "inyectar variables de entorno" después del shell de precompilación, y ahora se puede acceder a mi variable, por ejemplo. shells posteriores a la construcción, pero aún no está disponible en Maven "Objetivos y opciones".
Luego es posible configurar "Inyectar variables de entorno en el proceso de compilación" mediante EnvInject Plugin, que en realidad hace que esas variables estén disponibles en Maven "Objetivos y opciones", pero que se configuran justo después de la verificación de SCM, es decir, antes de los pasos previos a la compilación. y no admiten evaluaciones de expresión.