2013-02-28 8 views
28

मैं हडसन और एमएसटीएस्ट के साथ लगातार एकीकरण करने की कोशिश कर रहा हूं।विंडोज पर हडसन - त्रुटि: java.io.IOException: प्रोग्राम "sh" चला नहीं सकता

जब मैं यह काम मैं निम्नलिखित त्रुटि मिलती है चलाने का प्रयास:

1 Warnung(en) 
    0 Fehler 

Verstrichene Zeit 00:00:00.13 
[workspace] $ sh -xe C:\Windows\TEMP\hudson4419897732634199534.sh 
The system cannot find the file specified 
FATAL: Befehlsausführung fehlgeschlagen 
java.io.IOException: Cannot run program "sh" (in directory "C:\Users\Markus\.hudson\jobs\Test1 Unit TEst\workspace"): CreateProcess error=2, Das System kann die angegebene Datei nicht finden 
    at java.lang.ProcessBuilder.start(Unknown Source) 
    at hudson.Proc$LocalProc.<init>(Proc.java:187) 
    at hudson.Proc$LocalProc.<init>(Proc.java:157) 
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:649) 
    at hudson.Launcher$ProcStarter.start(Launcher.java:266) 
    at hudson.Launcher$ProcStarter.join(Launcher.java:273) 
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:79) 
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:54) 
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:34) 
    at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:646) 
    at hudson.model.Build$RunnerImpl.build(Build.java:181) 
    at hudson.model.Build$RunnerImpl.doRun(Build.java:136) 
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:434) 
    at hudson.model.Run.run(Run.java:1390) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:40) 
    at hudson.model.ResourceController.execute(ResourceController.java:81) 
    at hudson.model.Executor.run(Executor.java:137) 
Caused by: java.io.IOException: CreateProcess error=2, Das System kann die angegebene Datei nicht finden 
    at java.lang.ProcessImpl.create(Native Method) 
    at java.lang.ProcessImpl.<init>(Unknown Source) 
    at java.lang.ProcessImpl.start(Unknown Source) 
    ... 17 more 
Processing tests results in file results.trx 
FATAL: No MSTest TRX test report files were found. Configuration error? 
[DEBUG] Skipping watched dependency update for build: Test1 Unit TEst #5 due to result: FAILURE 
Finished: FAILURE 

मेरे विन्यास इस तरह दिखता है:

Buildverfahren 
Build a Visual Studio project or solution using MSBuild 
    MSBuild Version MS Build .NET 4 
    MSBuild Build File trunk\UnitTestWithNHibernate\UnitTestWithNHibernate.sln 
    Command Line Arguments /p:Configuration=Release 

मेरे आदेश पंक्ति इस तरह दिखता है:

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe" 
/runconfig: trunk\UnitTestWithNHibernate\UnitTest\LocalTestRun.testrunconfig /testcontainer: trunk\UnitTestWithNHibernate\UnitTest\bin\Debug\UnitTest.dll /resultsfile:results.trx 
+1

मिले समस्या। सी \ windows \ system32 \ cmd को खोल निर्दिष्ट करना था।exe –

+1

कृपया अपने स्वयं के प्रश्न का उत्तर दें, इसलिए यह भविष्य में दूसरों की मदद कर सकता है, और इसलिए लोग यह पता लगाने के लिए सिर्फ अपना पूरा प्रश्न नहीं पढ़ते हैं कि यह पहले ही हल हो चुका है। – Jim

उत्तर

62

ऐसा होता है यदि आपने अपने विंडोज कमांड को "बैक निष्पादित करें" के बजाय "निष्पादन खोल" के रूप में निर्दिष्ट किया है तथा"।

+5

यह स्वीकार्य उत्तर क्यों नहीं है? – quantum

25

ऐसा इसलिए होता है क्योंकि जेनकिंस को शैल पथ के बारे में पता नहीं है। > कॉन्फ़िगर प्रणाली - -
में जेनकींस प्रबंधित करें> शैल, के रूप में

C:\Windows\system32\cmd.exe

+0

क्या इसे 'पथ' से नहीं समझना चाहिए? – Yar

+0

पूरी तरह से मेरे लिए काम किया, धन्यवाद। –

6

मेरे मामले में खोल पथ सेट का उपयोग कर एक सिस्टम रिबूट और प्रवास करने से पहले "खोल निष्पादित" और बाद Cannot run program "sh" दिया काम बनाता है। मुद्दा यह था कि सिस्टम पथ कम अप्रत्याशित रूप से मिला। यह स्पष्ट नहीं है, लेकिन पथ C:\Program Files (x86)\Git\bin खो गया और गिट I का संस्करण उपयोग कर रहा था sh.exe के साथ आता है।

बेशक, आप @funkybro द्वारा सुझाए गए सभी कार्यों में "विंडोज बैच कमांड निष्पादित करें" के लिए अपने सभी "निष्पादन खोल" निर्माण चरणों को बदल सकते हैं। यह आपकी समस्या का समाधान नहीं करता है यदि आपके पास कोई ऐसी नौकरी है जो विंडोज सिस्टम या लिनक्स पर चल सकती है और आपके पास अन्य कारणों से दोनों सिस्टम हैं।

या, जैसा कि @ajith ने सुझाव दिया यदि आप इस सेटिंग cmd.exe उपयोग करने के लिए बदल सकता है: प्रबंधित जेनकींस -> कॉन्फ़िगर प्रणाली -> शैल -> शेल निष्पादन = C:\Windows\system32\cmd.exe

लेकिन, मैं linux आदेशों होने पसंद और का उपयोग कर ऐसा कुछ जो बैश जैसा दिखता है। यह मेरी अपनी प्राथमिकता है लेकिन मैंने सोचा कि यह भी सहायक हो सकता है। शुरुआत से शुरू करने के लिए, मैंने गिट स्थापित करने के लिए Chocolatey NuGet का उपयोग किया। मैं आपको बहुत उपयोगी यूनिक्स कमांड देने के लिए GnuWin की भी अनुशंसा करता हूं।

  • Chocolatey NuGet
  • स्थापित अध्यक्ष एवं प्रबंध निदेशक या PowerShell में: cinst gnuwin git

तो आप इस सिस्टम पथ को C:\Program Files (x86)\Git\bin\ जोड़कर विंडोज यूआई का उपयोग कर ठीक कर सकते हैं।

या आप जेनकींस वैश्विक config में इसे ठीक कर सकते हैं: प्रबंधित जेनकींस -> कॉन्फ़िगर प्रणाली -> शैल -> शेल निष्पादन = C:\Program Files (x86)\Git\bin\sh.exe

+2

धन्यवाद @ नेट। मेरी भी यही समस्या थी। समस्या यह थी कि मेरा गिट इंस्टॉल केवल \ Git \ cmd \ और \ Git \ bin नहीं जोड़ा गया .. –

+2

मुझे जेनकिंस को पाथ पुनः लोड करने के लिए नोड के साथ कनेक्शन को रीसेट करना पड़ा। – Arthur

+2

यदि मैं वैश्विक जेनकींस कॉन्फ़िगरेशन पर खोल निष्पादन योग्य निर्दिष्ट करता हूं, तो भी मेरा लिनक्स और ओएसएक्स गुलाम इसका उपयोग करने का प्रयास करता है, जिसके परिणामस्वरूप दोनों विफल हो जाते हैं ?! क्या मेरे विंडोज़ गुलाम के लिए खोल निष्पादन योग्य पथ को निर्दिष्ट करने का कोई तरीका है? – Ben

1

तरह से इस समस्या को ठीक करने के लिए "शैल में C:\Windows\system32\cmd.exe का मूल्य डाल करने के लिए था निष्पादन योग्य "हडसन सिस्टम कॉन्फ़िगरेशन में कॉन्फ़िगरेशन।

अपनी नौकरी के निर्माण अनुभाग में, आप रख सकते हैं खिड़कियों परियोजना पूर्व संकलन के बाद निष्पादित करने के लिए आदेश:

copy target\pmd-rules-extensions-0.0.1-SNAPSHOT.jar D:\projects\sonar\sonar-3.4.1\extensions\rules\pmd\ 
संबंधित मुद्दे

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