के भीतर ग्रोवी का उपयोग करके मानचित्र पर पुनरावृत्ति करने की असंभवता हम Map
पर फिर से प्रयास करने की कोशिश कर रहे हैं, लेकिन बिना किसी सफलता के। हम इस कम से कम उदाहरण के लिए हमारी मुद्दा कम:जेनकिन्स पाइपलाइन
def map = [
'monday': 'mon',
'tuesday': 'tue',
]
हम साथ पुनरावृति करने का प्रयास करें: monday:mon
विकल्प हम जानते हैं:
map.each{ k, v -> println "${k}:${v}" }
केवल पहली प्रविष्टि उत्पादन होता है लूप में प्रवेश करने में भी सक्षम नहीं हैं:
for (e in map)
{
println "key = ${e.key}, value = ${e.value}"
}
या
for (Map.Entry<String, String> e: map.entrySet())
{
println "key = ${e.key}, value = ${e.value}"
}
असफल रहे हैं, दोनों एकमात्र अपवाद java.io.NotSerializableException: java.util.LinkedHashMap$Entry
दिखा। (जो 'वास्तविक' अपवाद को उठाते हुए अपवाद से संबंधित हो सकता है, जो हमें यह जानने से रोकता है कि क्या हुआ)।
हम नवीनतम स्थिर जेनकींस (2.1 9 .1) का उपयोग कर रहे हैं, सभी प्लगइन्स आज (2016/10/20) के अनुसार अद्यतित हैं।
क्या जेनकिंस पाइपलाइन ग्रोवी स्क्रिप्ट के भीतर Map
में तत्वों पर पुनरावृत्ति करने का कोई समाधान है?
जेनकिंस के साथ एक घंटे की लंबी लड़ाई के बाद इस पोस्ट को मिला। एक देशी डेटा संरचना पर सरल पुनरावृत्त करने के लिए इस संघर्ष से गुजरना अपमानजनक है! –
यदि आप कुछ भी जटिल करना चाहते हैं, तो यह कई लोगों का पहला संघर्ष है। अकेले ग्रोवी के अलावा एक पीआईटीए (संदर्भ के आधार पर बचत उद्धरण, बस इतना है कि जब आप एक नाम को एक चर को इंगित करते हैं तो सीखने की आवश्यकता होती है और जब एक स्ट्रिंग, योजना के बाद "आपके इरादे से" बाहर निकलती है), उन्होंने शीर्ष पर कुछ अजीब बग जोड़े और बेस भाषा से लगभग कुछ भी प्रतिबंधित करें।फिर प्लगइन के मजाकिया व्यवहार हैं (यदि आप एक आर्टिफैक्ट और इसकी लापता बचत करना चाहते हैं, तो पाइपलाइन अभी भी जारी है और अंत में विफल हो जाती है)। मैं चाहता हूं कि मैंने इसे कहीं और काम करने में कुछ समय बिताया ... बिल्डबॉट स्थापित करना। –
मैंने इस समाधान का उपयोग किया लेकिन फिर भी एक त्रुटि प्राप्त हुई: "org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: स्क्रिप्ट को नए उपयोग करने की अनुमति नहीं है" (यह नक्शा के अंदर नया है) –