2015-02-26 5 views
14

लॉन्च करते समय सोनारक्यूब में त्रुटि मैंने हाल ही में अपने सोनारक्यूब सर्वर को 4.5.2 से 5.0.1 तक अपग्रेड किया, फिर 5.1 तक (नीचे संपादित देखें)। ,svn blame

[INFO] [12:02:05.045] Sensor SCM Sensor... 
[INFO] [12:02:05.169] SCM provider for this project is: svn 
[INFO] [12:02:05.169] Retrieve SCM blame information... 
[INFO] [12:02:05.185] 650 files to be analyzed 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Summary: 
[INFO] 
[INFO] myproject ......................................... FAILURE [3:21.165s] 
[INFO] module1 ........................................... SKIPPED 
[INFO] module2 ........................................... SKIPPED 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 2:42.429s 
[INFO] Finished at: Thu Feb 26 11:30:01 CET 2015 
[INFO] Final Memory: 73M/2020M 
[DEBUG] [11:30:01.789] Executing: svn blame --xml --non-interactive -x -w src/main/java/MyClass.java 
[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project myproject: java.io.IOException: Cannot run progra 
m "svn" (in directory "C:\somedirectory\module1"): CreateProcess error=2, The system cannot find the file specified 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
     at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) 
     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152) 
     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555) 
     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) 
     at org.apache.maven.cli.MavenCli.main(MavenCli.java:158) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.apache.maven.plugin.MojoExecutionException: java.io.IOException: Cannot run program "svn" (in directory "C:\somedirectory\module1"): CreateProcess error=2, The system cannot find the file specified 
     at org.codehaus.mojo.sonar.bootstrap.ExceptionHandling.handle(ExceptionHandling.java:41) 
     at org.codehaus.mojo.sonar.bootstrap.RunnerBootstraper.execute(RunnerBootstraper.java:139) 
     at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:138) 
     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
     ... 19 more 

किसी तरह, आदेश svn निर्देशिका C:\somedirectory\module1 में फ़ाइल src/main/java/MyClass.java नहीं मिला, हालांकि उस फ़ाइल निश्चित रूप से होती है:

अचानक, एक बहु मॉड्यूल Maven परियोजना के विश्लेषण निम्नलिखित त्रुटि के साथ विफल। यदि मैं कमांड प्रॉम्प्ट C:\somedirectory\module1 के अंदर कमांड प्रॉम्प्ट svn blame --xml --non-interactive -x -w src/main/java/MyClass.java कमांड प्रॉम्प्ट में निष्पादित करने का प्रयास कर रहा हूं तो आदेश ठीक से काम कर रहा है।

svn आदेश पैथ पर सही ढंग से है, जैसा कि सोनारक्यूब सर्वर में "सिस्टम जानकारी" पृष्ठ पर "लाइब्रेरी पथ" फ़ील्ड में देखा जा सकता है। सोनारक्यूब सर्वर उसी सर्वर पर होस्ट किया गया है जहां mvn sonar:sonar निष्पादित किया गया था (विंडोज सर्वर 2008 आर 2)।

svn को सोनारक्यूब द्वारा दोष इतिहास पुनर्प्राप्त करने के लिए लॉन्च किया जा रहा है। जैसा कि मैं समझता हूं, there were some changes made in SonarQube 5.0 concerning SCM support (अंतर्निहित में परिवर्तन)। इसके लिए मेरा कामकाज सोनारक्यूब में एससीएम सेंसर को अक्षम करना है (-Dsonar.scm.disabled=true या सीधे "सेटिंग> सामान्य सेटिंग्स> एससीएम" के तहत सोनारक्यूब सर्वर में)।

यह this question से संबंधित नहीं है क्योंकि जब मैंने सोनारक्यूब 5.0.1 में अपग्रेड किया था तो मुझे केवल उस व्यवहार का सामना करना पड़ा था।

इस्तेमाल किया JRE: 1.7.0_51 (64 बिट)

संपादित करें:

SonarQube 5.1 में अपग्रेड करने का बाद, त्रुटि अभी भी यहाँ है, लेकिन संदेश अलग और अधिक स्पष्ट है। मैं एक SVN ग्राहक (TortoiseSVN) पुनर्स्थापित कर दिया है और दोनों जेनकींस और SonarQube को पुनः आरंभ लेकिन त्रुटि रहता है:

एससीएम प्रदाता "SVN" करने के लिए स्थापित किया गया था, लेकिन कोई एससीएम प्रदाता इस कुंजी के लिए मिल गया। कोई एससीएम प्रदाता स्थापित

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project bombardier: SCM provider was set to "svn" but no SCM provider found for this key. No SCM provider installed -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project bombardier: SCM provider was set to "svn" but no SCM provider found for this key. No SCM provider installed 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:158) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.apache.maven.plugin.MojoExecutionException: SCM provider was set to "svn" but no SCM provider found for this key. No SCM provider installed 
    at org.codehaus.mojo.sonar.bootstrap.ExceptionHandling.handle(ExceptionHandling.java:41) 
    at org.codehaus.mojo.sonar.bootstrap.RunnerBootstraper.execute(RunnerBootstraper.java:139) 
    at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:138) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
    ... 19 more 
Caused by: java.lang.IllegalArgumentException: SCM provider was set to "svn" but no SCM provider found for this key. No SCM provider installed 
    at org.sonar.batch.scm.ScmConfiguration.setProviderIfSupported(ScmConfiguration.java:123) 
    at org.sonar.batch.scm.ScmConfiguration.considerOldScmUrl(ScmConfiguration.java:133) 
    at org.sonar.batch.scm.ScmConfiguration.start(ScmConfiguration.java:109) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110) 
    at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89) 
    at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84) 
    at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169) 
    at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132) 
    at org.picocontainer.behaviors.Stored.start(Stored.java:110) 
    at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1015) 
    at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1008) 
    at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:766) 
    at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:91) 
    at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77) 
    at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:57) 
    at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:45) 
    at org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:135) 
    at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92) 
    at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77) 
    at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:158) 
    at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:95) 
    at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67) 
    at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87) 
    at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69) 
    at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50) 
    at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102) 
    at org.sonar.runner.api.Runner.execute(Runner.java:100) 
    at org.codehaus.mojo.sonar.bootstrap.RunnerBootstraper.execute(RunnerBootstraper.java:135) 
    ... 22 more 
+0

त्रुटि बहुत जटिल आपको चुनना चाहिए उनमें से कुछ टुकड़ा – dewelloper

+3

@ HamitYıldırım मैं असहमत हूं, इस मुद्दे को डीबग करने के लिए सभी स्टैकट्रैक प्रासंगिक हो सकते हैं। और यह इतना लंबा नहीं है। – Tunaki

उत्तर

8

मैंने सोनारक्यूब 5 स्थापित करने के बाद एक ही समस्या का अनुभव किया।1, अद्यतन केंद्र पर जाएं:

http://your_domain:port/updatecenter/available

"SVN" के लिए खोज, क्लिक "स्थापित करें"

https://docs.sonarqube.org/display/PLUG/SVN+Plugin

कुछ इस तरह दिखाई देगा:

SonarQube पुनरारंभ करने की आवश्यकता आदेश निम्नलिखित प्लग इन इंस्टॉल करने में: सोनार-SCM-svn-प्लगइन-1.0.jar

अपने SonarQube पुनरारंभ करें।

+0

हां, यह इसे दबाया! मैंने नहीं देखा कि एक नया एसवीएन प्लगइन था। यह अपग्रेड नोट्स में निश्चित रूप से उल्लेख किया जाना चाहिए। – Tunaki

+0

मैं गिट के लिए इसकी पुष्टि कर सकता हूं। हमने अपने सोनारक्वे को एक नए सर्वर पर 4.5 से 6.4 तक ले जाया। पुराने सर्वर में एक गिट स्थापना थी। गिट-प्लगइन [लिंक] (https://docs.sonarqube.org/display/PLUG/Git+Plugin) जोड़कर मैंने इस मुद्दे को हल किया। – Markus

0

कृपया जांच करें कि SonarQube प्रक्रिया एक ही वातावरण भी वेरिएबल नहीं है, जैसा कि आप परीक्षण के लिए उपयोग कर रहे हैं।

+0

सोनारक्यूब 'सिस्टम जानकारी' पृष्ठ में, 'लाइब्रेरी पथ' के तहत, मेरे पास (अन्य चीजों के साथ) "सी: \ प्रोग्राम फ़ाइलें \ TortoiseSVN \ bin" 'और 'svn' निष्पादन योग्य उस फ़ोल्डर के नीचे सही है। – Tunaki

34

नीचे आदेश जो SVN संबंधित मुद्दों

-Dsonar.scm.disabled=True 

को निष्क्रिय कर देगा का उपयोग इस SVN

+0

मैंने पहले ही ऐसा किया है। मैंने सोनारक्यूब सर्वर पर एससीएम सेंसर को अक्षम कर दिया और यह इसके बिना काम करता है। लेकिन मैं इसे एससीएम सेंसर के साथ काम करना चाहता हूं। – Tunaki

+3

"एमवीएन सोनार: सोनार-डीसनर.scm.disabled = सच"। मेरे लिए काम किया धन्यवाद – Morvader

0

मैं सिर्फ एक Redhat Linux मशीन पर SonarQube 5.0.1 स्थापित किया है को निष्क्रिय कर देगा और मैं बिल्कुल वैसा ही है मुसीबत।

स्किम आंकड़े प्लगइन को अक्षम करने के बजाय, मैंने एक svn क्लाइंट (svnkit.x86_64) स्थापित किया है और बिल्ड को सक्रिय रूप से एससीएम सक्रिय के साथ निष्पादित किया गया है। तो मुझे विंडोज़ पर लगता है, आपको एक एसवीएन क्लाइंट स्थापित करना चाहिए और उसे पैथ पर रखना चाहिए।

+0

आपके उत्तर के लिए धन्यवाद लेकिन मेरे पास पहले से ही एक विंडोज़ मशीन (यह टोर्टोइज एसवीएन) पर एक एसवीएन क्लाइंट स्थापित है। कमांड प्रॉम्प्ट के साथ, मैं सफलतापूर्वक svn कमांड निष्पादित कर सकता हूं। – Tunaki

+0

ओह, मैं देखता हूं, क्या आपने टोर्टोइसेवन बिन निर्देशिका को सीधे विंडोज सिस्टम पथ में जोड़ने की कोशिश की है? इसके बाद जेनकींस को पुनरारंभ करें ताकि नया पर्यावरण चर अद्यतन हो। –

+0

हां, यह वास्तव में है जहां मैंने इसे जोड़ा। सोनारक्यूब और जेनकींस सर्वर दोनों को पुनरारंभ किया गया था। – Tunaki

1

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

मैं CentOS का उपयोग कर रहा था। जादू

sudo yum install svn 

था अंतिम चाल सुनिश्चित करें कि निर्माण मशीन संस्करण मैं स्थापित के रूप में चेकआउट के लिए SVN का एक ही संस्करण का उपयोग कर रहा था बनाने के लिए किया गया था। यदि बिल्ड मशीन मूल रूप से एक अलग संस्करण का उपयोग कर रही थी तो आपको यह सुनिश्चित करना होगा कि यह पूरे कार्यक्षेत्र को इसके अगले चेक आउट से पहले साफ़ कर दे।

अंत में, यह मत भूलना कि सोनार को आपके एसवीएन प्रमाण-पत्रों की भी आवश्यकता है!

+0

और सोनार के लिए एसवीएन प्रमाण-पत्र कैसे निर्दिष्ट करें? यही वह नहीं है जो मुझे नहीं मिल रहा है ... – Betlista

7

यह समस्या दो वैसे, sonar.properties -Dsonar.scm.disabled = सच, यह केवल sonarrunner.bat सोनार विश्लेषण के लिए मान्य है की स्थापना करके, अपने कर रही है, तो हल किया जा सकता है
1.
2. किसी अन्य प्रकार के विश्लेषण का उपयोग करके व्यवस्थापक डिफ़ॉल्ट व्यवस्थापक के साथ लॉगिन व्यवस्थापक/व्यवस्थापक (उपयोगकर्ता नाम/पासवर्ड) है। http://yourDomin:port/settings/index(e.ghttp://localhost:9000/settings/index) फिर श्रेणी में एससीएम का चयन करें और एससीएम सेंसर सेट को सही के रूप में अक्षम करें। बाकी
3.or यू व्यवस्थापक (व्यवस्थापक/व्यवस्थापक) के रूप में प्रवेश के बाद सोनार http://your_domain:port/updatecenter/available को SVN प्लगइन जोड़ सकते हैं, उपलब्ध प्लगइन के लिए खोज और SVN का चयन करें और इसे स्थापित ..