2011-09-08 16 views
11

Estoy configurando Jenkins para reemplazar nuestra construcción actual de TeamCity CI.Cómo agregar la variable de ruta al shell de trabajo

He creado un proyecto de software libre para que pueda ejecutar un script de shell. El script de Shell ejecuta el comando mvn.

Pero la construcción falla al quejarse de que no se puede encontrar el comando 'mvn'.

He pensado que esto se debe a que Jenkins está ejecutando la compilación en un shell diferente, que no tiene a Maven en su camino.

Mi pregunta es; ¿Cómo agrego la ruta para que 'mvn' se encuentre en mi script de Shell? Miré alrededor, pero no puedo ver dónde podría estar el lugar correcto.

Gracias por su tiempo.

Respuesta

5

Lo resolví exportando y estableciendo el Camino en la configuración de Job de Jenkins, donde puede ingresar comandos de shell. Así que configuro la variable de entornos antes de ejecutar mi script de Shell, funciona de maravilla.

3

Algunas soluciones posibles:

  • Puede llamar experto con una ruta absoluta
  • configura una variable de entorno global en la configuración del sistema Jenkins con la ruta absoluta a la instancia experta, y utilizar esto en su llamada de script (si utiliza el script de shell en línea, no sé si se sustituyen por un script llamado, debe probar)
  • Utiliza un proyecto maven y configura su instancia maven en la configuración del sistema jenkins

ps .: Por lo general, /bin/sh se elige de Jenkins, si desea cambiar a, por ejemplo. bash, puede configurar esto en la configuración del sistema jenkins, en caso de que quiera configurar variables de entorno globales.

0

Otra opción para la sugerencia de Dags es que si solo está utilizando una única versión de maven, en cada servidor esclavo podría hacerlo; * add PATH = $ {PATH}: * symlink mvn en/usr/bin con; sudo ln-usr/bin

No estoy en una caja de Jenkins por el momento, pero puedo encontrar algunos ejemplos más detallados si lo desea.

0

Jenkins usa sh por defecto y no bash. Esta es la primera vez que defino un trabajo de jenkins maven, y también seguí las instrucciones regulares de maven (para ejecutar desde la línea de comandos ...) y traté de actualizar ~/.bashrc con M2_HOME, M2, PATH, pero no lo hice t trabajo porque jenkins usó sh y no bash. Luego descubrí que hay una forma más simple y mejor integrada en jenkins.

Después de instalar maven, se suponía que debía configurar mi instalación de maven en jenkins.

Para configurar la instalación experta en Jenkins:

  1. de acceso a la consola web Jenkins
  2. clic en Administrar Jenkins -> Configurar Sistema
  3. Bajo Maven, haga clic en las "Instalaciones Maven. .. "botón
  4. a. Darle un nombre b. y bajo MVN_HOME establecer la ruta a donde se ha instalado experto, por ejemplo "/usr/local/apache-maven/apache-maven-3.0.5"
  5. Haga clic en el botón Guardar

Definir un trabajo con Maven objetivo

  1. editar su trabajo
  2. Haga clic en "Añadir paso de generación"
  3. en Maven Versión, introduzca el nombre que le dio su instalación de Maven (paso # 4 arriba)
  4. establecer una meta como instalación limpia
1

Puede utilizar envInject plugin. Es muy poderoso.

Lo uso para instalar rbenv. Y puede inyectar variables de entorno en su trabajo actual.

Cuestiones relacionadas