significado - ¿Hay alguna forma de cambiar el directorio de trabajo de una build de Jenkins Maven?
jenkins significado (7)
Como referencia, esto es lo que funciona para mí. En el paso de creación "Invocar objetivos Maven de primer nivel", hay un botón "Avanzado ...". Si hace clic en este botón, puede especificar la ruta relativa a su archivo POM.xml. Esto debería garantizar que solo está creando el proyecto deseado en el subdirectorio.
¿Hay alguna forma de cambiar el directorio de trabajo de una build de Jenkins Maven?
Caso de uso
Hay una compilación Maven que solo funcionará si el directorio de trabajo actual es el directorio con pom.xml, así que quiero que la compilación Maven se ejecute en ese directorio.
El directorio con pom.xml está en un subdirectorio de un proyecto git.
Crea un objetivo para pagar el padre.
- Verifica el directorio principal de tu objetivo de compilación
- Establecer compilación -> Meta = limpiar
- Ejecute compilación y determine el directorio del espacio de trabajo de destino (segunda línea de salida de la consola, en mi ejemplo / var / lib / jenkins / workspace / my_project)
Crea un objetivo para construir tu camino
- NO marque "Eliminar espacio de trabajo antes de que comience la construcción"
- En Build -> Advanced - Marque "Change folder of workspace" y pegue su / yourtargetdirectory
Funcionó para mí
El Jenkins con el que estamos trabajando está en alemán, así que estoy tratando de adivinar cómo se traducen las opciones.
Vaya a la configuración de su proyecto y vaya a la configuración mejorada del proyecto (es la segunda sección) y amplíelo. El último punto debería ser algo así como Change folder of workspace
. Creo que eso podría ser lo que estás buscando.
De lo contrario, siempre puede ir a las opciones de Build
y cambiar la ruta a su pom.xml
No estoy seguro de cuándo se agregó, pero para los Jenkins que tengo delante (Jenkins versión 1.627 en la parte inferior de la página), ahora hay una opción para definir dónde está el pom.xml raíz (el mensaje de ayuda dice:
Si su espacio de trabajo tiene el pom.xml de nivel superior en algún lugar que no sea el directorio raíz del primer módulo, especifique aquí la ruta (relativa a la raíz del módulo), como parent / pom.xml. Si se deja en blanco, el valor predeterminado es pom.xml
) Estaba enfrentando el mismo problema pero luego me di cuenta de que la respuesta me estaba mirando a la cara (nótese que no tuve que presionar el botón avanzado como sugirió Hua2308, probablemente porque cambiaron la interfaz de usuario).
Solución:
cd subfolder; mvn -f ../pom.xml task
Maven no ofrece una opción para hacerlo al revés, lo que significa que es sensato para este caso de uso, probablemente porque Maven te odia.
Vaya a la configuración de su proyecto de maven, luego:
Build> haga clic en el botón "Avanzado"> marque "Usar área de trabajo personalizada"> configure el directorio
(Estoy usando la versión 1.508 de Jenkins)
Puede usar la opción -f
de Maven
-f,--file <arg> Force the use of an alternate POM file (or directory with pom.xml).
Por ejemplo, si su proyecto tiene una estructura:
README.md
sources
|----pom.xml
|----services
| |----pom.xml
| +----src
|----webservices
| |----pom.xml
| +----src
+----....
useful
docs
entonces puedes usar Goals
en Invoke top-level Maven targets
:
-f sources/pom.xml clean install