【问题标题】:Sonarqube is not working after updateSonarqube 更新后无法正常工作
【发布时间】:2014-05-29 08:27:34
【问题描述】:

我将 SonarQube 更新到 4.2,但它现在无法在 Jenkins 工作。 T.T

Jenkins 和 SonarQube 安装在同一台服务器上,我使用的是 mysql。 此外,SonarQube 的 Jenkins 设置指向 mysql 数据库。

... Jenkins 中的 Maven 版本是 3.0.5

我没有在java项目中设置声纳maven插件。

它在 Sonar 3.4.1 上运行良好,更新 SonarQube 后我没有更改 Jenkins 上的任何设置。

这是错误跟踪。

[错误] 期望 selectOne() 返回一个结果(或 null),但发现:2 [信息] --------------------------------------------- ------------------------- [信息] 构建失败 [信息] --------------------------------------------- ------------------------- [INFO] 总时间:16.495s [INFO] 完成时间:2014 年 4 月 15 日星期二 06:10:08 GMT [INFO] 最终内存:20M/89M [信息] --------------------------------------------- ------------------------- [错误] 无法在项目 java-utils 上执行目标 org.codehaus.mojo:sonar-maven-plugin:2.2:sonar (default-cli):无法执行 SonarQube 分析:预期返回一个结果(或 null) selectOne(),但找到:2 -> [帮助 1] org.apache.maven.lifecycle.LifecycleExecutionException: 无法在项目 java-utils 上执行目标 org.codehaus.mojo:sonar-maven-plugin:2.2:sonar (default-cli): 无法执行 SonarQube 分析 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 在 org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 引起:org.apache.maven.plugin.MojoExecutionException: 无法执行SonarQube分析 在 org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:109) 在 org.codehaus.mojo.sonar.Bootstraper.start(Bootstraper.java:67) 在 org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:109) 在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ... 19 更多 引起:org.apache.maven.plugin.MojoExecutionException:期望selectOne()返回一个结果(或null),但发现:2 在 org.sonar.maven.ExceptionHandling.handle(ExceptionHandling.java:37) 在 org.sonar.maven.SonarMojo.execute(SonarMojo.java:175) 在 org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:104) ... 23 更多`在此处输入代码` 引起:org.apache.ibatis.exceptions.TooManyResultsException:期望selectOne()返回一个结果(或null),但发现:2 在 org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:66) 在 org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63) 在 org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:43) 在 com.sun.proxy.$Proxy61.selectByNameAndLanguage(未知来源) 在 org.sonar.core.qualityprofile.db.QualityProfileDao.selectByNameAndLanguage(QualityProfileDao.java:181) 在 org.sonar.core.qualityprofile.db.QualityProfileDao.selectByNameAndLanguage(QualityProfileDao.java:188) 在 org.sonar.batch.rule.ModuleQProfiles.loadQProfile(ModuleQProfiles.java:105) 在 org.sonar.batch.rule.ModuleQProfiles.(ModuleQProfiles.java:92) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 org.picocontainer.injectors.AbstractInjector.newInstance(AbstractInjector.java:145) 在 org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:342) 在 org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270) 在 org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364) 在 org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56) 在 org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64) 在 org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91) 在 org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:698) 在 org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:646) 在 org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:631) 在 org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118) 在 org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136) 在 org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78) 在 org.picocontainer.injectors.SingleMemberInjector.getMemberArguments(SingleMemberInjector.java:61) 在 org.picocontainer.injectors.MethodInjector.getMemberArguments(MethodInjector.java:100) 在 org.picocontainer.injectors.MethodInjector$2.run(MethodInjector.java:112) 在 org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270) 在 org.picocontainer.injectors.MethodInjector.decorateComponentInstance(MethodInjector.java:120) 在 org.picocontainer.injectors.CompositeInjector.decorateComponentInstance(CompositeInjector.java:58) 在 org.picocontainer.injectors.Reinjector.reinject(Reinjector.java:142) 在 org.picocontainer.injectors.ProviderAdapter.getComponentInstance(ProviderAdapter.java:96) 在 org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:698) 在 org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:646) 在 org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:631) 在 org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118) 在 org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136) 在 org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78) 在 org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309) 在 org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335) 在 org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270) 在 org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364) 在 org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56) 在 org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64) 在 org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91) 在 org.picocontainer.DefaultPicoContainer.instantiateComponentAsIsStartable(DefaultPicoContainer.java:1033) 在 org.picocontainer.DefaultPicoContainer.addAdapterIfStartable(DefaultPicoContainer.java:1025) 在 org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1002) 在 org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:766) 在 org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:91) 在 org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77) 在 org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:199) 在 org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:194) 在 org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:187) 在 org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92) 在 org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77) 在 org.sonar.batch.scan.ScanTask.scan(ScanTask.java:56) 在 org.sonar.batch.scan.ScanTask.execute(ScanTask.java:44) 在 org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:82) 在 org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92) 在 org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77) 在 org.sonar.batch.bootstrap.BootstrapContainer.executeTask(BootstrapContainer.java:144) 在 org.sonar.batch.bootstrap.BootstrapContainer.doAfterStart(BootstrapContainer.java:132) 在 org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92) 在 org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77) 在 org.sonar.batch.bootstrapper.Batch.startBatch(Batch.java:92) 在 org.sonar.batch.bootstrapper.Batch.execute(Batch.java:74) 在 org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:45) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87) 在 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:90) 在 org.sonar.maven.SonarMojo.execute(SonarMojo.java:173) ... 24 更多 [错误] [错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。 [错误] [错误] 有关错误和可能的解决方案的更多信息,请阅读以下文章: [错误] [帮助 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

【问题讨论】:

  • 我有这个问题,但我认为它与 SQ 更新无关。 ERROR: Caused by: Expected one result (or null) to be returned by selectOne(), but found: 2

标签: java jenkins sonarqube


【解决方案1】:

您面临的 http://jira.codehaus.org/browse/SONAR-5196 在即将发布的版本 (4.3) 中已修复。这意味着对于相同的语言,您有两个相同的质量配置文件(名称相同但大小写不同)。您可以删除一个并再次运行分析吗?

【讨论】:

  • 我从质量配置文件中删除了一些 java 质量配置文件。但我仍然有同样的例外。我删除了正确的个人资料吗?
【解决方案2】:

也许您没有更新您的 SonarQube 数据库。为此,请启动您的 SonarQube,例如

http://<sonarqubeserver>/setup

并按照那里的说明进行操作。

如果升级引入了数据库更改,则有时需要此更新。不过,如果您在浏览器中启动 SonarQube,它应该会发布维护消息。

【讨论】:

  • 感谢您的回复。我在更新 Sonaqube 后立即更新了数据库。谢谢。
【解决方案3】:

我也是同样的问题。我是 2 个具有相同名称的质量配置文件(在将声纳从 3.5 升级到 4.2 之后)。 我删除了旧的“声纳方式”并保留了新的“声纳方式”质量配置文件并且它有效。

【讨论】:

    【解决方案4】:

    感谢您的回答。

    我为每种语言配置文件找到了一堆“声纳方式”配置文件,实际上,我只关注 JAVA 配置文件。

    我重命名了所有配置文件。 喜欢,

    • Groovy-Sonar 方式(来自 Groovy 配置文件的 Sonar 方式)
    • Java-Sonar 方式(来自 Java 配置文件的 Sonar 方式)
    • JavaScript-Sonar 方式(来自 JavaScript 配置文件的 Sonar 方式)
    • PHP-Sonar 方式(来自 PHP 配置文件的 Sonar 方式)

    但 PHP 配置文件有“声纳方式”和“声纳方式”。我删除了其中一个。

    无论如何,从 Jenkins 运行 Sonar 现在已经成功!

    谢谢。

    【讨论】:

      【解决方案5】:

      在 SonarQube 网络界面中删除导致错误的项目,然后重新扫描该项目。

      【讨论】:

        猜你喜欢
        • 2019-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-04
        • 2021-07-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多