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.

Respuestas a la pregunta(5)

Su respuesta a la pregunta