2014-12-30 3 views
7

ठीकजेनकींस Gradle प्लगइन - बजाय -पी के रूप में पैरामीटर भेजने डी

की मैं एक जेनकींस काम (जेनकींस संस्करण अधिक हाल ही में) है।

मेरी जेनकींस नौकरी में, मेरे पास कुछ पैरामीटर (स्ट्रिंग प्रकार) हैं।

पूर्व: param = मूल्य ... परम को एन = मूल्य एन

अब, जेनकींस काम में, BUILD धारा के तहत, मैं "फोन कर रहा हूँ ग्रैडल को आमंत्रित करें "

इस ग्रैडल सेक्शन में, मैं एक कार्य (कॉल कर रहा हूं)। पूर्व के लिए: स्वच्छ निर्माण

मुझे जो चाहिए वह है: मैं उपरोक्त जेनकींस नौकरी के पैरामीटर को ग्रैडल -PparamN = ValueN तरीके से पास करना चाहता हूं?

लेकिन जब मैं -Pparam1 = $ {param1} -Pparam2 = $ {param2} गुजर रही है ... और इतने पर "स्विच" में Gradle में विकल्प का निर्माण खंड, मैं देख जेनकींस लॉग दिखा रहा है:

इसे पैरामीटर के साथ सफलतापूर्वक ग्रैडल कहा जाता है।

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

यह बताओ, जेनकींस तरह मुक्त करने के लिए "डी" तरीके के रूप में Gradle के मानकों (जो मैं काम में परिभाषित किया है) पारित करने के लिए पर्याप्त है। ?

मेरे रों:

  1. ठीक है, मैं इसके बाद के संस्करण पैरामीटर पास नहीं करना चाहती के रूप में -Dxxx = yyy
  2. मैं पैरामीटर पास करना चाहते हैं केवल -Pxxx = yyy रास्ता
  3. है "Invoke Gradle" प्लगइन का उपयोग करने के साथ यह संभव है?
+0

खैर जेनकींस Gradle प्लगइन बस आप के लिए प्रणाली के गुण के रूप में किसी भी निर्माण पैरामीटर जोड़ना है। उन्हें "स्विच" कॉन्फ़िगरेशन में जोड़कर आप ** ** ** प्रोजेक्ट गुणों के रूप में जोड़ रहे हैं। मुझे दो बार घोषित होने में नुकसान दिखाई नहीं देता है, और मुझे उस विशेष प्लगइन व्यवहार को अक्षम करने का कोई तरीका नहीं दिखता है। –

+0

सहमत हैं, लेकिन जावा गुणों (-डी) तरीके को परिभाषित कर रहा है और अन्य जो मैं मैन्युअल रूप से "स्विच" बॉक्स में निर्दिष्ट कर रहा हूं (-पी) तरीका ग्रैडल सिस्टम प्रोप हैं। –

उत्तर

4

मैं इस समय लगता है, वहाँ जेनकींस में Gradle प्लगइन बताने के लिए पैरामीटर पास नहीं करने के लिए कोई रास्ता नहीं है (जेनकींस काम में परिभाषित) -Dxxx = $ yyy तरह से (जो यह मुक्त करने के लिए हमारे लिए क्या कर रहा है) के रूप में है।

हम इन पैरामीटर को -पी तरीके के रूप में निर्दिष्ट करने के लिए "स्विच" बॉक्स/विकल्प का उपयोग कर सकते हैं, लेकिन यह थोड़ा उलझन में है- डी पैरामीटर JVM को प्रभावित करेगा जो ग्रैडल स्वयं को चलाने के लिए उपयोग करता है और चाहे-डी पैरामीटर किसी भी तरह से संघर्ष करेंगे -पी पैरामीटर (क्योंकि वे दो बार पारित/परिभाषित हो रहे हैं)।

कामकाज के रूप में, मैंने ग्रैडल प्लगइन का उपयोग करना बंद कर दिया और बिल्ड अनुभाग के तहत "निष्पादन शैल" विकल्प का उपयोग किया और संबंधित पैरामीटर (-पी रास्ता) और कार्य (ओं) के साथ निष्पादन योग्य ग्रेड कहा।

यह पैरामीटर और कार्यों के साथ ग्राडल को कॉल करने का एक सादा तरीका है जैसे आप सीएमडी या $ प्रॉम्प्ट पर चलेंगे।

1

जेनकिन्स को पहले-डी के रूप में पैरामीटर दें। और फिर आप पीडी के साथ ग्रैडल पास कर सकते हैं।उदाहरण के लिए, यदि आप एक पैरामीटर env कहा जाता है, तो आप यह कार्य में के रूप में

-Penv=${env} 
+1

जेनकींस में ग्रेडल प्लगइन्स के लिए पैरामीटर कॉन्फ़िगरेशन है? – lephix

0

डाल सकते हैं जेनकींस Gradle प्लगइन 1.27 के साथ के रूप में वहाँ एक चेकबॉक्स प्रणाली गुण के रूप में पैरामीटर भेजने और जोड़ने के लिए नहीं प्लगइन बताने के लिए है मैन्युअल रूप से कुछ पैरामीटर। आप सभी पैरामीटर को ग्राडल गुणों के रूप में पास करने का भी चयन कर सकते हैं जो आप शायद चाहते हैं।

enter image description here

+0

यहां तक ​​कि जब मैं इसे ग्राडल प्रोजेक्ट प्रॉपर्टीज के रूप में पास करता हूं, तब भी यह -P के बजाय -D का उपयोग करके पैरामीटर का उपयोग कर गुजर रहा है। इसके अलावा, अगर मैं एकाधिक पैरामीटर (परियोजना प्रॉपर्टी के रूप में नहीं) पास करना चाहता हूं, तो मैं यह कैसे कर सकता हूं? – Ven

+0

सुनिश्चित करें कि आप ग्रैडल जेनकींस प्लगइन के कम से कम संस्करण 1.27 का उपयोग कर रहे हैं। मैंने ऊपर एक स्क्रीनशॉट जोड़ा। ध्यान दें कि प्रोजेक्ट और सिस्टम गुणों के लिए कॉन्फ़िगरेशन अब "उन्नत" के अंतर्गत है। दो फ़ील्ड ("प्रोजेक्ट प्रॉपर्टीज" और "सिस्टम प्रॉपर्टीज") हैं जो आपको कई गुणों को पारित करने की अनुमति देते हैं। – wolfs42

संबंधित मुद्दे