2009-04-14 20 views
30

मेरे पास हडसन गुलाम पर कई परियोजनाएं चल रही हैं। मैं चाहता हूं कि उनमें से एक डिफ़ॉल्ट रूप से जावा 6 के तहत चींटी चलाने के लिए चाहें (जो मेरे पर्यावरण में जावा 5 है)। एक स्पष्ट विकल्प मेरे एक कस्टम JDK स्थान इस परियोजना के लिए उपयोग करने के लिए सेट करने के लिए अनुमतिमैं एक विशिष्ट जेडीके का उपयोग करने के लिए हडसन नौकरी कैसे कॉन्फ़िगर कर सकता हूं?

  • :

    परियोजना विन्यास को देखते हुए, मैं या तो लगता है की उम्मीद कर रहा था।

  • इस परियोजना के लिए कस्टम वातावरण चर सेट करने का एक तरीका, जो मुझे JAVA_HOME को JDK6 स्थान पर सेट करने की अनुमति देगा। वांछित के रूप में चींटी उठाएगा और जावा 6 पर चलाएगा।

क्या ऊपर से कोई भी करने का कोई तरीका है? यदि उनमें से एक सुविधा उपलब्ध है, तो मैं नहीं देख सकता कि इसे कैसे पहुंचाया जाए। मैं हडसन 1.285 पर चल रहा हूं।

यदि संभव हो तो मैं "इंटोक एंट" ऑपरेशन के बजाय "निष्पादित खोल" ऑपरेशन का उपयोग करने से बचूंगा: मेरा दास ज़ेड/ओएस पर है और हडसन इस प्लेटफार्म पर अस्थायी शैल स्क्रिप्ट को ठीक से प्रतीत नहीं कर रहा है (शायद एक एन्कोडिंग मुद्दा)।

+1

यह एक टॉस करना चाहते सकता है हडसन उपयोगकर्ताओं को मेलिंग सूची में: https://hudson.dev.java.net/mailing-lists.html गुलामों को कॉन्फ़िगर करना शायद बहुत अच्छी तरह से प्रलेखित/व्यापक रूप से समझा नहीं जा सकता है –

+0

धन्यवाद, मैंने ऐसा किया है: http: // है .gd/szcr। इस बीच, मेरा हैकी वर्कअराउंड दास पर JOB_NAME env var की जांच करने के लिए दास पर मुख्य चींटी स्क्रिप्ट ($ ANT_HOME/bin/ant) ​​को संशोधित करना है और उसके अनुसार JAVA_HOME सेट करें (JOB_NAME env var स्वचालित रूप से हडसन द्वारा सेट किया गया है)। – rewbs

उत्तर

25

यह पता चला है कि यदि आप निर्माण पैरामीटर बनाते हैं, तो आपके द्वारा जोड़े गए किसी भी स्ट्रिंग पैरामीटर पर्यावरण चर बन जाते हैं। इस दृष्टिकोण के साथ, निर्माण के लिए किसी भी पर्यावरण परिवर्तक को सेट करना संभव है, जिसमें JAVA_HOME शामिल है, जिसे चींटी द्वारा उठाया जाता है।

तो मेरे लिए सबसे अच्छा समाधान था:

  1. काम विन्यास पेज टिक में "यह निर्माण पैरामिट्रीकृत कि"
  2. एक नया स्ट्रिंग पैरामीटर JAVA_HOME और JDK स्थान पर सेट डिफ़ॉल्ट मान के साथ बुलाया जोड़े

यह स्पष्ट नहीं है कि स्ट्रिंग पैरामीटर निर्माण पर्यावरण चर बन जाते हैं, लेकिन एक बार जब आप जानते हैं कि वे करते हैं, तो इस तरह जेडीके सेट करना आसान है।

मास्टर जेडीके कॉन्फ़िगरेशन का उपयोग करके हडसन मेलिंग सूची recommended another approach पर डेवलपर्स और नोड कॉन्फ़िगरेशन में ओवरराइड ... लेकिन बस JAVA_HOME env var को सेट करना मेरे लिए आसान तरीका लगता है।

+0

यह उत्तर गलत लगता है। सही उत्तर के लिए नीचे अगला उत्तर देखें। –

+1

यदि आप यहां हैं क्योंकि आप कुछ हडसन बिल्ड के लिए एक अलग जेडीके कॉन्फ़िगर करना चाहते हैं, तो मार्क द्वारा अन्य उत्तर देखें। हालांकि, प्रश्न के लिए पूछे जाने वाले प्रश्न के लिए, दास पर निर्माण के लिए एक अलग जेडीके को कॉन्फ़िगर करना, यह सही जवाब है। – skiphoppy

0

इस परियोजना के लिए कस्टम वातावरण चर सेट करने का एक तरीका, जो मुझे JAVA_HOME को JDK6 स्थान पर सेट करने की अनुमति देगा। वांछित के रूप में चींटी उठाएगा और जावा 6 पर चलाएगा।

एंटी के लिए बिल्ड चरणों को कॉन्फ़िगर करते समय, "एंटीक एंट" के तहत, यदि आप "उन्नत" पर क्लिक करते हैं, तो आप कस्टम जावा विकल्प सेट कर सकते हैं। ऑन-स्क्रीन सहायता कहती है:

यदि आपके निर्माण को कस्टम ANT_OPTS की आवश्यकता है, तो इसे यहां निर्दिष्ट करें। आमतौर पर इसका उपयोग करने के लिए जावा मेमोरी सीमा निर्दिष्ट करने के लिए उपयोग किया जा सकता है, उदाहरण के लिए -Xmx512m। ध्यान दें कि अन्य चींटी विकल्प (जैसे -lib) को "चींटी लक्ष्य" फ़ील्ड में जाना चाहिए।

मुझे एहसास है कि यह जेडीके के लिए दौड़ने के लिए काम नहीं करेगा, हालांकि।

क्या आपने इस हडसन इंस्टेंस के लिए Manage Hudson/Configure System के तहत एकाधिक जेडीके इंस्टॉलेशन कॉन्फ़िगर किए हैं?

+0

आपकी भावना सही है: ANT_OPTS यदि जेडीके को पास करने के लिए कस्टम जेवीएम विकल्प के लिए है, और जो जेडीके का उपयोग करने के लिए प्रभावित नहीं करता है। हालांकि, मुझे सिस्टम दृश्य कॉन्फ़िगर करने के बारे में पता नहीं था जो एकाधिक जेडीके इंस्टॉलेशन की अनुमति देता है। सुनिश्चित नहीं है कि यह दासों के लिए कैसे काम करेगा लेकिन मैं एक नज़र डालेगा - धन्यवाद! – rewbs

+2

एक नजदीक दिखने के बाद, ऐसा लगता है कि प्रबंधित हडसन के तहत जेडीके -> कॉन्फ़िगरेशन सिस्टम केवल मास्टर पर जेडीके के लिए हैं, दास नहीं। क्या मुझे कुछ याद आ रहा है - क्या दास पर कई जेडीके सेट करने का कोई तरीका है? हडसन 1.285 पर "नोड कॉन्फ़िगर करें" दृश्य में कोई जेडीके विकल्प नहीं है। – rewbs

27

हमारे पास हमारे हडसन इंस्टेंस में उपयोग के लिए जावा 5 और जावा 6 दोनों कॉन्फ़िगर किए गए हैं।

हडसन प्रबंधित करें -> कॉन्फ़िगरेशन सिस्टम में आप कई जेडीके जोड़ सकते हैं और JAVA_HOME के ​​लिए पथ निर्दिष्ट कर सकते हैं। प्रत्येक नौकरी के लिए कॉन्फ़िगरेशन में आपने तब चुना है कि कौन सा जेडीके आप उस नौकरी को चलाने के लिए चाहूंगा।

+0

पिछले उत्तर पर दूसरी टिप्पणी देखें - ऐसा लगता है कि यह विकल्प मास्टर पर एकाधिक जेडीके के लिए अनुमति देता है, लेकिन गुलाम/नोड्स पर नहीं। – rewbs

+1

याद किया कि यह एक गुलाम था। मैंने कभी भी एक मास्टर के रूप में हडसन का उपयोग किया है, इसलिए वहां कोई अंतर्दृष्टि नहीं दे सकती है। – Mark

+0

इसके अलावा, आपके पास हडसन में एक एएनटी कार्य के साथ जेडीके का उपयोग करने का विकल्प नहीं है। – ShiDoiSi

0

आप इस तरह उपयोग कर सकते हैं।

बैच कमांड विंडो में जानबूझकर आप परिवर्तनीय नाम JAVA_HOME सेट कर सकते हैं, इस कस्टम चर नाम को PATH चर में असाइन करें। तो आप विशिष्ट फ़ाइल चुनने के लिए एक चींटी स्क्रिप्ट को कॉल कर सकते हैं।

उदाहरण:

सेट JAVA_HOME = C: /java/jdk1.6.1

पथ =% JAVA_HOME%/bin;% पथ%

चींटी निर्माण।xml

+0

सवाल बताता है कि 'मैं "निष्पादित खोल" ऑपरेशन का उपयोग करने से बचूंगा, जो आप यहां सुझा रहे हैं। –

0

Setenv प्लगइन पर एक नज़र डालें। वहाँ आप JAVA_HOME की तरह चर सेट कर सकते हैं = C: /java/jdk1.6.1 पथ =% JAVA_HOME%/bin;% पथ%

2

हम दो अलग अलग जावा हडसन नोड्स का उपयोग करके इस समस्या को कामयाब रहे। जावा 6 के लिए एक और जावा 7 के लिए एक। फिर हमने जॉब्स को अलग-अलग नोड्स में आवश्यकतानुसार असाइन किया।

2

व्यक्तिगत गुलाम एजेंटों को आपके द्वारा चलाए जाने वाले सिस्टम पर विशिष्ट जेडीके का उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है।

प्रबंधित नोड्स> दास> कॉन्फ़िगर> पर्यावरण चर

उदाहरण के लिए

नाम: JAVA_HOME मूल्य: C: \ प्रोग्राम फ़ाइलें (x86) \ jdk1.6.0_45 \

1

\ जावा सबसे अच्छा तरीका है,

  1. अपने सिस्टम में सभी आवश्यक जेडीके इंस्टॉल करें।
  2. कॉन्फ़िगरेशन पृष्ठ में जेडीके शीर्षक के तहत जेनकिंस में जोड़ें।
  3. जेनकींस
  4. पुनः प्रारंभ जेनकींस
  5. अपनी नौकरी कॉन्फ़िगरेशन पृष्ठ पर जाएँ करने के लिए Maven जानकारी प्लगइन स्थापित करें। JDK कॉम्बो बॉक्स से आवश्यक
  6. करें JDK Maven जानकारी प्लगइन विन्यास के तहत दिखाई
  7. बिल्ड यह
  8. का आनंद लें !!!
0

मुझे एक समस्या थी जहां स्थापित जेडीके जेडीके 8 था जबकि मैं जेनकिंस जेडीके 7 का उपयोग करना चाहता था।-> जेनकींस प्रबंधित करें -> कॉन्फ़िगर प्रणाली -> JDK -> JDK नाम और पथ जोड़ें

जेनकींस: तो, के बाद जेनकींस पर JDK 7 स्थापित करने बॉक्स का निर्माण,

मैं जेनकींस विन्यास को JDK पथ जोड़ा

इसके अलावा, संपादित jenkins-runner.sh: पंक्ति जोड़ दें:

निर्यात JAVA_HOME = ""

बदलें अंतिम दो पंक्तियों को पढ़ने के लिए:

+०१२३५१६४१०६१

गूंज "/ bin/जावा" $ javaArgs जार "$ युद्ध" $ args

कार्यकारी "/ bin/जावा" $ javaArgs जार "$ युद्ध" $ args

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

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