hudson - que - youtube google videos
¿Cómo puedo configurar un trabajo de Hudson para usar un JDK específico? (9)
Tengo varios proyectos ejecutándose en un esclavo Hudson. Me gustaría que uno de ellos ejecute Ant bajo Java6, en lugar del predeterminado (que es Java5 en mi entorno).
En la vista de configuración del proyecto, esperaba encontrar cualquiera de los siguientes:
- Una opción explícita que me permite establecer una ubicación JDK personalizada para usar en este proyecto.
- Una forma de establecer variables de entorno personalizadas para este proyecto, lo que me permitiría establecer JAVA_HOME en la ubicación JDK6. Hará que Ant recoja y ejecute Java6 como lo desee.
¿Hay alguna forma de hacer cualquiera de los anteriores? Si una de esas instalaciones está disponible, no puedo ver cómo acceder a ella. Me estoy ejecutando en Hudson 1.285.
Prefiero evitar usar una operación de "ejecutar shell" en lugar de la operación "invocar Ant" si es posible: mi esclavo está en z / OS y Hudson no parece crear los scripts de shell temporales correctamente en esta plataforma (probablemente un problema de codificación) )
Una forma de establecer variables de entorno personalizadas para este proyecto, lo que me permitiría establecer JAVA_HOME en la ubicación JDK6. Hará que Ant recoja y ejecute Java6 como lo desee.
Al configurar los pasos de Build para Ant, en "Invoke Ant", si hace clic en "Avanzado", puede establecer opciones personalizadas de Java. La ayuda en pantalla dice:
Si su compilación requiere un ANT_OPTS personalizado, especifíquelo aquí. Por lo general, esto se puede usar para especificar los límites de la memoria java a usar, por ejemplo, -Xmx512m. Tenga en cuenta que otras opciones Ant (como -lib) deberían ir al campo "Ant targets".
Sin embargo, tengo la sensación de que esto no funcionará para que funcione el JDK.
¿Ha configurado varias instalaciones JDK para esta instancia de Hudson en Manage Hudson
/ Configure System
?
Eche un vistazo al Plugin Setenv. Allí puede establecer Variables como JAVA_HOME = C: /java/jdk1.6.1 RUTA =% JAVA_HOME% / bin;% PATH%
La mejor manera es
- Instale todos los JDK necesarios en su sistema.
- Añádelos a jenkins bajo el título JDK en la página de configuración.
- Instale el complemento Maven Info en jenkins
- Reiniciar jenkins
- Vaya a la página de configuración de su trabajo.
- Seleccione el JDK requerido en el cuadro combinado JDK en la configuración de Maven Info Plugin
- Constrúyelo
- ¡¡¡Disfrutar!!!
Los agentes esclavos individuales pueden configurarse para usar JDK específicos en el sistema donde los ejecuta.
Administrar nodos> Esclavo> Configurar> Variables de entorno
Por ejemplo
Nombre: JAVA_HOME Valor: C: / Archivos de programa (x86) / Java / jdk1.6.0_45 /
Manejamos este problema usando dos nodos Java Hudson diferentes. Uno para Java 6 y uno para Java 7. Luego, asignamos los Trabajos a los diferentes Nodos de acuerdo a sus necesidades.
Resulta que si hace la compilación parametrizada, los parámetros de cadena que agregue se convierten en variables de entorno. Con este enfoque, es posible establecer cualquier variable de entorno para la construcción, incluido JAVA_HOME, que recoge Ant.
Entonces la mejor solución para mí fue:
- En la página de configuración de trabajo Marque "Esta compilación está parametrizada"
- Agregue un nuevo parámetro String llamado JAVA_HOME y con el valor predeterminado establecido en la ubicación JDK
No es obvio que los parámetros de cadena de compilación se conviertan en variables de entorno, pero una vez que sepa que lo hacen, es fácil configurar el JDK de esta manera.
Los desarrolladores en la lista de correo de Hudson recomendaron otro enfoque utilizando las configuraciones maestras de JDK y anulaciones en las configuraciones de nodos ... pero solo configurar el env de JAVA_HOME me parece mucho más fácil.
Tenemos tanto Java 5 como Java 6 configurados para usar en nuestra instancia de Hudson.
En Administrar Hudson -> Sistema de configuración puede agregar varios JDK y especificar la ruta para JAVA_HOME. En la configuración para cada trabajo, luego seleccionó en qué JDK desea que se ejecute ese trabajo.
Tuve un problema donde el JDK instalado era JDK 8, pero quería que Jenkins utilizara el JDK 7. Entonces, después de instalar JDK 7 en la caja de construcción de Jenkins,
Agregué la ruta JDK a las configuraciones de jenkins:
Jenkins -> Administrar Jenkins -> Configurar sistema -> JDK -> Agregar nombre JDK y ruta
Además, edite jenkins-runner.sh: agregue la línea:
exportar JAVA_HOME = ""
Cambia las últimas dos líneas para leer:
echo "/ bin / java" $ javaArgs -jar "$ war" $ args
exec "/ bin / java" $ javaArgs -jar "$ war" $ args
puedes usar así
en la ventana de comandos por lotes, inicialmente puede establecer el nombre de la variable JAVA_HOME, asignar este nombre de variable personalizado a la variable PATH. luego puede llamar a un script ant para elegir un archivo específico.
Ejemplo:
establecer JAVA_HOME = C: /java/jdk1.6.1
RUTA =% JAVA_HOME% / bin;% PATH%
ant build.xml