2013-10-03 10 views
11

Sto configurando uno slave jenkins su una macchina che dovrebbe creare un progetto di maven contenente del codice C nativo. Tuttavia, la macchina stessa si sta dimostrando un problema. La macchina ospita un programma abbastanza vecchio, che utilizza un sacco di variabili di ambiente, come JAVA_HOME, che Maven deve funzionare correttamente. Per eseguire maven sulla macchina slave, ho bisogno di impostare queste variabili d'ambiente, prima di eseguire Maven, o Maven, e altre dipendenze, come ssh, non verranno eseguite. Non riesco a cambiare le variabili in modo permanente, quindi ho bisogno di un modo per cambiare la variabile d'ambiente en prima di eseguire la build di maven.Imposta la variabile di ambiente prima dell'esecuzione di Maven (In una build di jenkins)

Posso eseguire la compilazione manualmente impostando le variabili di ambiente prima di eseguire mvn e la build funziona come un incantesimo. Ma ho bisogno di Jenkins per attivare automaticamente la build.

Come lo vedo ho bisogno di uno: Configurare Jenkins per impostare variabili di ambiente prima di eseguire Maven o Configurazione maven utilizzano valori specifici invece di alcune variabili di ambiente (in modo tale che Jenkins grado di gestire l'esecuzione)

Il vostro aiuto è molto apprezzato.

risposta

16

Ci sono molte opzioni.

  • configurare il nodo per impostare la variabile ambiente (sotto Proprietà dei nodi controlla "variabili di ambiente")
  • per utensili Jenkins impostare gli ambienti necessarie stesso. Nella configurazione del nodo è possibile impostare percorsi diversi per gli strumenti configurati nella configurazione principale (in Proprietà del nodo, selezionare "Percorsi degli strumenti"), credo che non sia necessario un plug-in per avere questa opzione.
  • Utilizzare il EnvInject plugin (la Setenv Plugin è deprecato)
  • Utilizzare il Envfile Plugin
  • impostare le variabili di ambiente prima del lancio manuale di Maven. Devi avere entrambi nello stesso passo di costruzione. (soluzione peggiore)
  • creare una configurazione java/maven valida solo su quel particolare nodo e utilizzarla nel lavoro. Funziona solo se il tuo lavoro viene eseguito solo sul tuo nodo speciale e da nessun'altra parte.

suggerisco la prima o la seconda opzione

0

Immagino che Jenkins possa supportare l'impostazione di variabili di ambiente tramite l'interfaccia utente per la configurazione del lavoro. In caso contrario, si può certamente scrivere uno script che imposta il proprio ambiente e fare in modo che jenkins esegua tale script durante l'esecuzione del processo di creazione.

+0

Sì, Jenkins supporta diversi modi per impostare le variabili d'ambiente. –

+0

Grazie per l'aiuto di @PeterSchuetze! – chad

Problemi correlati