【发布时间】:2015-06-04 08:53:08
【问题描述】:
我正在尝试在我的服务器上配置 SonarQube 4.5.4。对于那个SonarQube版本,它需要jdk 1.7,如果构建我的Android系统固件,只能将jdk 1.6设置为默认jdk。
现在 jdk 1.7 仍在我的计算机上,而不是默认的。所以为了让SonarQube运行起来,jdk 1.7的绝对路径在/conf/wrapper.conf下面一行指定:
wrapper.java.command=/usr/lib/jvm/java-7-oracle/jre/bin/java
在这之后,从Sonar的设置中可以看到jdk 1.7:
好的,声纳运行器已准备好分析演示代码。不幸的是,抛出了一个错误:
emporia@emporia-ubuntu:~/Lawrence/sonar-examples-master/projects/languages/java/sonar-runner/java-sonar-runner-simple$ sonar-runner -X SonarQube 亚军 2.4 Java 1.6.0_45 Sun Microsystems Inc.(64 位) Linux 2.6.32-62-通用 amd64 信息:错误堆栈跟踪已打开。 信息:跑步者配置文件:/opt/sonar-runner-2.4/conf/sonar-runner.properties 信息:项目配置文件:/home/emporia/Lawrence/sonar-examples-master/projects/languages/java/sonar-runner/java-sonar-runner-simple/sonar-project.properties 信息:默认语言环境:“en_US”,源代码编码:“UTF-8” 信息:工作目录:/home/emporia/Lawrence/sonar-examples-master/projects/languages/java/sonar-runner/java-sonar-runner-simple/./.sonar 信息:SonarQube 服务器 4.5.4 16:42:00.393 信息 - 加载全局引用... 16:42:00.442 调试 - 下载:http://localhost:9000/batch/global(无代理) 16:42:00.799 信息 - 加载全局引用完成:409 毫秒 16:42:00.873 信息 - 用户缓存:/home/emporia/.sonar/cache 16:42:01.524 信息 - 安装插件 16:42:01.524 DEBUG - 插件下载索引 16:42:01.524 调试 - 下载:http://localhost:9000/deploy/plugins/index.txt(无代理) 信息:------------------------------------------------ ---------------------- 信息:执行失败 信息:------------------------------------------------ ---------------------- 总时间:3.208s 最终内存:2M/240M 信息:------------------------------------------------ ---------------------- 错误:Sonar runner 执行期间出错 org.sonar.runner.impl.RunnerException:无法执行声纳 在 org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91) 在 org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75) 在 java.security.AccessController.doPrivileged(本机方法) 在 org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69) 在 org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50) 在 org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102) 在 org.sonar.runner.api.Runner.execute(Runner.java:100) 在 org.sonar.runner.Main.executeTask(Main.java:70) 在 org.sonar.runner.Main.execute(Main.java:59) 在 org.sonar.runner.Main.main(Main.java:53) 原因:org.sonar.api.utils.SonarException:Java 1.6.0_45 不支持插件 java 在 org.sonar.core.plugins.PluginClassloaders.instantiatePlugin(PluginClassloaders.java:230) 在 org.sonar.core.plugins.PluginClassloaders.init(PluginClassloaders.java:97) 在 org.sonar.batch.bootstrap.BatchPluginRepository.doStart(BatchPluginRepository.java:99) 在 org.sonar.batch.bootstrap.BatchPluginRepository.start(BatchPluginRepository.java:72) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110) 在 org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89) 在 org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84) 在 org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169) 在 org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132) 在 org.picocontainer.behaviors.Stored.start(Stored.java:110) 在 org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1015) 在 org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1008) 在 org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:766) 在 org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92) 在 org.sonar.batch.bootstrapper.Batch.start(Batch.java:81) 在 org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67) 在 org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87) ... 9 更多 引起:java.lang.UnsupportedClassVersionError:org/sonar/plugins/java/JavaPlugin:不支持的major.minor版本51.0 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:615) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 在 java.net.URLClassLoader.access$000(URLClassLoader.java:58) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:197) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:389) 在 org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:242) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227) 在 org.sonar.core.plugins.PluginClassloaders.instantiatePlugin(PluginClassloaders.java:226) ... 34 更多
既然已经为 SonarQube 4.5.4 设置了 jdk 1.7,为什么会抛出这个错误?我是否还需要为 Sonar-runner 指定 jdk 1.7,但我没有找到配置它的地方。
【问题讨论】:
标签: sonarqube sonar-runner code-metrics