2012-05-03 9 views
7

Ho diversi processi con parametri Jenkins che utilizzano gli stessi parametri e valori dei parametri. Quando devo modificare il valore predefinito di uno di questi parametri, ho bisogno di andare oltre tutti quei lavori e riconfigurarli.Recupero dei parametri dal file delle proprietà

Una soluzione semplice a questo problema sarebbe un'opzione per recuperare tutti i parametri dal file di configurazione (nel master/nell'area di lavoro) ma non sono riuscito a trovare un'implementazione sufficiente per quello.

Voglio essere in grado di alimentare a costruire con il file di configurazione di Java standard di("chiave" in formato = "valore")e quindi fare riferimento a quei parametri come ogni altri parametri durante la compilazione.

Sei a conoscenza di una soluzione appropriata?

risposta

9

Usa EnvInject Plugin leggere I parametri da un file come variabili d'ambiente in un Variabili passaggio di generazione Inject Ambiente. Il problema è che quindi non è possibile ignorarli facilmente. Una soluzione sarebbe quella di usarlo in combinazione con lo Conditional BuildStep Plugin. È quindi possibile definire un parametro booleano OVERRIDE che sarebbe false false. È quindi possibile eseguire la fase di build Inject Inietta solo quando OVERRIDE è false. Quando è necessario eseguire l'override dei parametri con valori forniti a mano (in una chiamata personalizzata per eseguire il lavoro) specificare i valori di override e impostare OVERRIDE su true.

+0

+1: questa è la strada da percorrere. Io uso questo plugin per caricare i miei valori dipendenti dall'ambiente dai file di configurazione. I file di configurazione sono in SVN e la fase di sviluppo Variabili d'ambiente carica queste variabili in base a un parametro di Build. Puoi anche iniettare le variabili prima di controllare il tuo SCM. Questo plugin è stupendo. –

1

Uso hudson con formica e imposta i parametri (cliente) nel mio lavoro hudson. Questo parametro è poi il nome di un file proprietà che ho aperto con la formica come segue:

<loadproperties> srcFile="${project.dir}/build/resources/${customer}.properties"/>