2014-12-30 7 views
7

OKJenkins Gradle Plugin - Passa parametri -P invece di -D

ho un lavoro Jenkins (versione Jenkins più recente).

Nel mio lavoro Jenkins, ho un paio di parametri (tipo stringa).

Es: param = valore ... a Param N = valore N

Ora, nel lavoro Jenkins, sotto BUILD sezione, sto chiamando "Invoke Gradle ".

In questa sezione Gradle, sto chiamando un compito (s). Ad esempio: clean build

Quello che mi serve è: voglio passare i parametri di lavoro di Jenkins sopra a Gradle come -PparamN = ValoreN modo?

Ma quando sto passando -Pparam1 = $ {param1} -Pparam2 = $ {} param2 ... e così via in "Switches" nella Gradle costruire sezione, vedo registro Jenkins sta mostrando:

Si chiama Gradle exectuable con successo con i parametri.

...somepath.../bin/gradle -Dparam1=value1 -Dparam2=value2 ... -DparamN=valueN -Pparam1=value1 -Pparam2=value2 ... -PparamN=valueN 

Questo dirà, Jenkins è così gentile da passare i parametri (che ho definito nel lavoro) per Gradle come modo "-D" gratuitamente. ?

mio s:

  1. Beh, io non voglio passare i parametri di cui sopra come -Dxxx = yyy
  2. voglio passare i parametri solo -Pxxx = modo yyy
  3. è questo è possibile usando il plugin "Invoke Gradle"?
+0

Bene il plugin Jenkins Gradle è semplicemente l'aggiunta di eventuali parametri di costruzione come proprietà di sistema per voi. Aggiungendoli alla configurazione "switch", sei ** anche ** aggiungendoli come proprietà del progetto. Non vedo il danno in loro essere dichiarato due volte, e non vedo alcun modo per disabilitare quel particolare comportamento del plugin. –

+0

Accetto, ma uno sta definendo le proprietà Java (-D) e altri che sto specificando nel modo "switch" manualmente (-P) sono gli oggetti di scena di Gradle. –

risposta

4

Credo che in questo momento, non c'è modo di dire plug Gradle a Jenkins per non passare i parametri (definiti nel lavoro Jenkins) come -Dxxx = $ modo yyy (che si sta facendo per noi gratuitamente).

Possiamo però usare la casella/opzione "opzioni" per specificare questi parametri come -P via, ma è un po 'di confusione come i parametri -D incideranno sulla JVM che Gradle usa per eseguire se stessa e se i parametri -D saranno in qualche modo in conflitto con -P parametri (dato che vengono superati/definiti due volte).

Come soluzione temporanea, ho smesso di utilizzare il plug-in Gradle e ho utilizzato l'opzione "Execute Shell" nella sezione BUILD e ho chiamato eseguibile gradle con i rispettivi parametri (modo -P) e attività.

Questo è solo un modo semplice per chiamare Gradle con parametri e attività come quello che avresti eseguito su CMD o $ prompt.

1

Lascia che Jenkins abbia prima il parametro -D. E poi puoi passare a Gradle con -P.Ad esempio, se si dispone di un parametro chiamato env, si può mettere nel compito come

-Penv=${env} 
+1

c'è una configurazione dei parametri per i plugin gradle in jenkins? – lephix

0

Come con il plugin Jenkins Gradle 1.27 v'è una casella di controllo per dire al plugin non per passare i parametri come proprietà di sistema e aggiungere alcuni parametri manualmente. È anche possibile selezionare di passare tutti i parametri come proprietà Gradle, quale sarebbe ciò che si desidera.

enter image description here

+0

Anche quando lo passo come Gradle Project Properties, passa anche usando i parametri usando -D invece di -P. Inoltre, se voglio passare più parametri (non come proprietà del progetto), come posso farlo? – Ven

+0

Assicurati di utilizzare almeno la versione 1.27 del plugin Gradle Jenkins. Ho aggiunto uno screenshot qui sopra. Si noti che la configurazione per le proprietà di progetto e di sistema è ora in "Avanzate". Esistono due campi ("Proprietà progetto" e "Proprietà di sistema") che consentono di passare più proprietà. – wolfs42

Problemi correlati