2014-12-30 20 views
7

OKJenkins Gradle Plugin - przekazywanie parametrów jak -P zamiast -D

mam pracę Jenkins (wersja Jenkins nowsza).

W mojej pracy Jenkins mam kilka parametrów (typ string).

Ex: param = wartość ... do param N = wartość N

Teraz w Jenkins pracy pod BUILD sekcji, dzwonię "Wywołaj Gradle ".

W tej sekcji programu Gradle wywołuję zadanie (zadania). Na przykład: clean build

Potrzebuję: chcę przekazać powyższe parametry pracy Jenkinsa do Gradle jako -PparamN = ValueN way?

Ale kiedy jestem przechodzącej -Pparam1 = $ {param1} -Pparam2 = $ {param2} ... i tak dalej w "Przełączniki" Opcja w Gradle Budowanie sekcję, widzę dziennika Jenkins pokazuje:

To się nazywa Gradle osiągalne pomyślnie z parametrami.

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

to powiedzieć, Jenkins jest na tyle uprzejmy, aby przekazać parametry (które zostały zdefiniowane w pracy) do Gradle jako „-d” sposób za darmo. ?

My s:

  1. Cóż, nie chcę, aby przekazać powyższe parametry jak -Dxxx = yyy
  2. Chcę przekazać parametry tylko -Pxxx = yyy sposób
  3. Czy to jest możliwe przy użyciu wtyczki "Invoke Gradle"?
+0

Dobrze plugin Jenkins Gradle jest po prostu dodając żadnych parametrów zbudować jako właściwości systemu dla Ciebie. Dodając je do konfiguracji "przełączników" jesteś ** również ** dodając je jako właściwości projektu. Nie widzę szkody w nich zadeklarowanej dwa razy, i nie widzę sposobu, aby wyłączyć to konkretne zachowanie wtyczki. –

+0

Zgadzam się, ale jednym z nich jest zdefiniowanie właściwości Java (-D) i innych, które określam w polu "przełączniki" ręcznie (-P) sposób są rekwizytami systemu Gradle. –

Odpowiedz

4

Chyba w tej chwili, nie ma sposobu, aby powiedzieć Gradle wtyczki w Jenkins aby nie przechodzić parametry (zdefiniowane w Jenkins pracy) jak -Dxxx = $ sposób yyy (który to robi dla nas za darmo).

Możemy jednak użyć okna/opcji "przełączniki", aby określić te parametry jako -P, ale jest to mało mylące, w jaki sposób parametry -D wpłyną na maszynę JVM, której Gradle używa do działania i czy parametry -D będą w jakiś sposób kolidować z Parametry -P (ponieważ są dwukrotnie przekazywane/definiowane).

W ramach obejścia problemu przestałem używać wtyczki Gradle i użyłem opcji "Wykonaj powłokę" w sekcji BUILD i nazwano program gradle z odpowiednimi parametrami (-P way) i task (s).

To prosty sposób na wywoływanie Gradle z parametrami i zadaniami, takimi jak to, co uruchamiasz w CMD lub $ prompt.

1

Niech Jenkins ma parametr jako -D pierwszy. A następnie możesz przejść do Gradle za pomocą -P.Na przykład, jeśli masz parametr o nazwie ENV, można umieścić go w zadaniu jako

-Penv=${env} 
+1

czy istnieje konfiguracja parametrów dla wtyczek gradle w jenkins? – lephix

0

Jak z wtyczką Jenkins Gradle 1.27 znajduje się pole wyboru, aby powiedzieć, że wtyczki nie przekazać parametry jako właściwości systemu i dodać niektóre parametry ręcznie. Można także wybrać przekazywanie wszystkich parametrów jako właściwości Gradle, co prawdopodobnie będzie potrzebne.

enter image description here

+0

Nawet gdy przekazuję go jako Właściwości Projektu Gradle, to również przechodzi on przy użyciu parametrów, używając opcji -D zamiast -P. Ponadto, jeśli chcę przekazać wiele parametrów (nie jako właściwości projektu), jak mogę to zrobić? – Ven

+0

Upewnij się, że używasz co najmniej wersji 1.27 wtyczki Gradle Jenkins. Dodałem zrzut ekranu powyżej. Zwróć uwagę, że konfiguracja projektu i właściwości systemu znajduje się teraz w sekcji "Zaawansowane". Istnieją dwa pola ("Właściwości projektu" i "Właściwości systemu"), które umożliwiają przekazywanie wielu właściwości. – wolfs42

Powiązane problemy