2012-06-08 30 views
11

मैं जेनकींस में इस आदेश को चलाने के लिए कोशिश कर रहा हूँ में ठीक चलाता है: एक मैप की गई नेटवर्क ड्राइव पर है। यह cmd.exe में ठीक चलता है लेकिन जब इसे जेनकींस में चलाने की कोशिश की जाती है, तो मुझे त्रुटि Invalid drive specification मिल रही है।निष्पादित विंडोज़ बैच आदेश से जेनकींस विफल रहता है, लेकिन एक MSBuild</p> <pre><code>xcopy "C:Program Files (x86)JenkinsworkspacetrunkProjectsresultsresultsobjDebugPackagePackageTmp" "Y:Extraction_ZoneJenkins" /E </code></pre> <p>वाई के बाद cmd.exe

Time Elapsed 00:00:04.03 
[trunk] $ cmd /c call C:\Windows\TEMP\hudson3389873107474371072.bat 

C:\Program Files (x86)\Jenkins\workspace\trunk>xcopy "C:\Program Files (x86)\Jenkins\workspace\trunk\Projects\results\results\obj\Debug\Package\PackageTmp" "Y:\Extraction_Zone\Jenkins\" /E 
Invalid drive specification 
0 File(s) copied 

C:\Program Files (x86)\Jenkins\workspace\trunk>exit 4 
Build step 'Execute Windows batch command' marked build as failure 
Finished: FAILURE 

किसी भी मदद की सराहना की जाएगी:

यहाँ जेनकींस से उत्पादन होता है।

+3

एक सेवा के रूप में चल जेनकींस नहीं है? यदि यह सत्य है, तो आपको मैप किए गए ड्राइव –

+1

वाई के स्थान पर नेटवर्क पथ निर्दिष्ट करके अपने जारीकर्ता को हल करना चाहिए: शायद किसी विशिष्ट उपयोगकर्ता को मैप किया गया है। जेनकींस शायद अपने स्वयं के 'सेवा खाते' के तहत चलाता है, उस ड्राइव अक्षर तक पहुंच नहीं है वाई :? आप Y: के बजाय यूएनसी पथिंग का उपयोग करने का प्रयास कर सकते हैं, यानी "\\ सर्वर नाम \ फ़ोल्डर \ Extraction_zone \ Jenkins \" – JMC

+0

उत्तर के लिए धन्यवाद। मैं इस कोशिश की, लेकिन हो रही है पहुँच से मना कर रहा है: 'समय बीत 00: 00: ०३.७० [ट्रंक] $ cmd/सी कॉल C: \ Windows \ TEMP \ hudson7535872922876977589.bat C: \ Program Files (x86) \ जेनकींस \ वर्कस्पेस \ ट्रंक> एक्सकॉपी "सी: \ प्रोग्राम फ़ाइलें (x86) \ जेनकींस \ वर्कस्पेस \ ट्रंक \ प्रोजेक्ट्स \ परिणाम \ परिणाम \ obj \ डीबग \ पैकेज \ पैकेजटीएम" "\\ COMP-NAME \ Webs \ Extraction_Zone"/\ Program Files (x86) \ जेनकींस \ कार्यक्षेत्र \ ट्रंक> बाहर निकलने 4 कदम बिल्ड 'निष्पादित करें: \\ COMP-NAME \ जाले \ Extraction_Zone 0 फ़ाइल (फ़ाइलें) की नकल की सी - ई पहुँच निर्देशिका बनाने में असमर्थ से इनकार किया विंडोज बैच कमांड 'विफलता के रूप में चिह्नित समाप्त: विफलता – Chris

उत्तर

14

मुझे भी एक बार एक ही समस्या थी। services.msc के तहत जेनकिन्स सेवा "इस खाते के रूप में लॉगऑन" देने का प्रयास करें और सुनिश्चित करें कि आपके द्वारा टाइप किया गया खाता cmd.exe चलाने के लिए उपयोग किए जाने वाले जैसा ही है।

enter image description here

+0

यह काम नहीं कर रहा था। मैंने व्यवस्थापक के रूप में लॉग इन करने का प्रयास किया, लेकिन मुझे एक ही त्रुटि मिल रही है। – Chris

+1

मैं अपनी कार्य मशीन से चल रहा हूं और मुझे यह वही समस्या थी। मैंने @adarshr के रूप में किया और इस खाते का उपयोग किया और ब्राउज किया ... फिर मेरी कॉरप्रेट एडी खाता जानकारी और पासवर्ड देखा। एक जादू की तरह काम किया! – TWhite

+0

मुझे इसके साथ कोई समस्या थी: उपयोगकर्ता को बदलने के बाद सेवा शुरू हो जाएगी और फिर रुक जाएगी। अधिक जानकारी के लिए इवेंट व्यूअर की जांच करें। मेरे मामले में मेरे उपयोगकर्ता को सी: \ प्रोग्राम फाइलों तक पहुंच नहीं थी \ jenkins – DLeh

0

adarshr (यानी, सेवा की साख पर लॉग संशोधित) समस्या का एक हिस्सा के लिए मेरे लिए काम किया है के समाधान: मेरे मामले में, यह मेरे सफलतापूर्वक अस्थिर भंडार की जाँच करने की अनुमति दी (एसएसएच प्रोटोकॉल का उपयोग करके), जिसे मैं 'स्थानीय सिस्टम खाता' का उपयोग करते समय नहीं कर सका।

हालांकि, मेरे पास अभी भी कमांड लाइन स्क्रिप्ट चलाने या निर्माण खंड में जेनकिन्स 'निष्पादन खोल' स्क्रिप्ट से एक ही स्क्रिप्ट चलाने के बीच अलग-अलग व्यवहार है। मेरे मामले में, मैं एक पायथन एक्सटेंशन संकलित करता हूं। जेनकींस में, मैं एक्सटेंशन आयात नहीं कर सकता (मुझे कोई त्रुटि दिखाई नहीं दे रही है, लेकिन निष्पादन बस बंद हो जाता है, इसलिए मुझे संदेह है कि यह दुर्घटनाग्रस्त है)।

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

तो कम से कम मेरे मामले में- यह स्पष्ट है कि यह एक प्रमाणिक समस्या है।

साख उपयोग प्रलेखन: https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI

1

मैं अपने Windows कार्य एक बैच फ़ाइल (मैं जानता हूँ कि यह बिल्कुल वैसा ही नहीं है) मैं कहाँ स्थान अर्थात साझा ड्राइव नेटवर्क पर फ़ाइल की प्रतिलिपि करने की कोशिश की चल के साथ एक ही मुद्दा था। मैंने यूएनसी पथ और मैप किए गए ड्राइव का भी उपयोग किया लेकिन त्रुटि एक जैसी थी। मेरे लिए यह त्रुटि संख्या 4 थी - एमएस डॉस त्रुटि कोड। समाधान शुद्ध उपयोग आदेश का उपयोग करना था! उम्मीद है कि यह मदद करता है।

2

इन जावा जार फ़ाइलों के आधार पर आदेशों मेरे लिए काम किया:
cmd
शुद्ध उपयोग x: \\
xcopy "जिले \" एक्स: \/वाई

और बस हो गया! मैंने इस मुद्दे को समझने में बहुत समय लगाया और जब तक मैंने सीएमडी और नेट उपयोग नहीं लिखा, तब तक कुछ भी काम नहीं किया!
न तो मुझे जेनकींस सेवा पर अनुमति बदलने की आवश्यकता नहीं थी और न ही रनस कमांड का उपयोग किया गया था।

लेकिन मुझे यह जिक्र करना चाहिए कि हर किसी ने नेटवर्क ड्राइव तक पहुंच पढ़ और लिख ली है।

+0

इससे यह मेरे लिए भी काम करता है, (मेरे पास पहले से ही जेनकिंस सर्वर @adarshr के जवाब के अनुसार था)।बेहतर पठनीयता के लिए दूसरी पंक्ति का अर्थ है 'शुद्ध उपयोग x: \\ yournetworkshare \ foldername' – Schaki

0

इसी तरह की समस्या का सामना करना पड़ा और हल करने के दो तरीके मिले।

टाइप 1: जेनकिंस मैप किए गए ड्राइव के बारे में बताएं। 1.गोटो -> जेनकींस प्रबंधित करें -> स्क्रिप्ट कंसोल (ग्रोवी स्क्रिप्ट)। 2.Run आदेश नीचे

def mapdrive = "net use Y: \\\\copy_nework_address" 
mapdrive.execute(); 
println "net use".execute().getText() 

प्रकार: 2 1.Goto -> cmd -> रन "शुद्ध उपयोग" पता करने के लिए नेटवर्क पता

xcopy "C:\Program Files (x86)\Jenkins\workspace\trunk\Projects\results\results\obj\Debug\Package\PackageTmp" "Copy_Network_Address\Extraction_Zone\Jenkins\" /E 

निष्कर्ष: - मैं के रूप में के बाद 2 प्रकार के पसंद करते हैं हर पुनरारंभ करें मुझे ग्रोवी स्क्रिप्ट को चलाना चाहिए।

0

अधिकांश चीजों के लिए आसान समाधान।

  1. कमांड प्रॉम्प्ट टेक्स्ट के अंदर चलाने के लिए अपनी कोशिश करने के साथ बैच कमांड बनाएं, filename.bat।
  2. बैच कमांड के लिए एक सामान्य विंडोज शॉर्टकट बनाएं, शॉर्टकट उन्नत गुणों को संपादित करें और "व्यवस्थापक के रूप में चलाएं" (मुश्किल मुश्किल) की जांच करें।
  3. अब जेनकिंस कमांड लाइन कॉल से filename.lnk शॉर्टकट चलाएं, यह आपको सभी जैज़ के आसपास ले जाएगा।

:)