【问题标题】:Jenkins-Sonar-Maven Integration IssueJenkins-Sonar-Maven 集成问题
【发布时间】:2012-11-16 06:41:58
【问题描述】:

我一直在尝试将 Sonar 与我们的 Jenkins 持续集成系统集成。我已经为 Jenkins 安装了声纳插件并进行了配置(指定了数据库、数据库用户名和密码等)。我还将 sonar-maven-plugin 版本指定为 1.0-beta-2。

除了这个插件配置,我还添加了一个构建后操作来在我的 maven 项目上运行 Sonar。但是每次 Jenkins 尝试执行 sonar:sonar 目标时,它都会失败并出现以下错误。

请帮我解决这个问题。

谢谢

[INFO] Building prof
[INFO]    task-segment: [org.codehaus.mojo:sonar-maven-plugin:1.0-beta-2:sonar] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [sonar:sonar {execution: default-cli}]
[INFO] Sonar host: http://inmqbs:9000
[INFO] Sonar version: 3.3.2
[INFO] Execute: org.codehaus.sonar:sonar-maven-plugin:3.3.2:sonar
Downloading: http://troop:8081/nexus/content/groups/platform//org/codehaus/sonar/sonar-maven-   plugin/3.3.2/sonar-maven-plugin-3.3.2.pom
[INFO] Unable to find resource 'org.codehaus.sonar:sonar-maven-plugin:pom:3.3.2' in repository troop-maven-releases (http://troop:8081/nexus/content/groups/platform/)
Downloading: http://troop:8081/nexus/content/groups/platform//org/codehaus/sonar/sonar-maven-plugin/3.3.2/sonar-maven-plugin-3.3.2.pom
[INFO] Unable to find resource 'org.codehaus.sonar:sonar-maven-plugin:pom:3.3.2' in repository  central (http://repo1.maven.org/maven2)
Downloading: http://troop:8081/nexus/content/groups/platform//org/codehaus/sonar/sonar-maven-plugin/3.3.2/sonar-maven-plugin-3.3.2.pom
[INFO] Unable to find resource 'org.codehaus.sonar:sonar-maven-plugin:pom:3.3.2' in repository troop-maven-releases (http://troop:8081/nexus/content/groups/platform/)
Downloading: http://troop:8081/nexus/content/groups/platform//org/codehaus/sonar/sonar-maven-plugin/3.3.2/sonar-maven-plugin-3.3.2.pom
[INFO] Unable to find resource 'org.codehaus.sonar:sonar-maven-plugin:pom:3.3.2' in repository central (http://repo1.maven.org/maven2)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Can not execute Sonar

Embedded error: Unable to build project for plugin 'org.codehaus.sonar:sonar-maven-plugin':  POM 'org.codehaus.sonar:sonar-maven-plugin' not found in repository: Unable to download the artifact from any repository

  org.codehaus.sonar:sonar-maven-plugin:pom:3.3.2

  from the specified remote repositories:
  internal-repository (http://troop:8081/nexus/content/groups/platform/)

  for project org.codehaus.sonar:sonar-maven-plugin
[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Can not execute Sonar
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals  (DefaultLifecycleExecutor.java:719)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal (DefaultLifecycleExecutor.java:569)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal (DefaultLifecycleExecutor.java:539)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:284)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: Can not execute Sonar
at org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:103)
at org.codehaus.mojo.sonar.Bootstraper.start(Bootstraper.java:79)
at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:88)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals (DefaultLifecycleExecutor.java:694)
... 17 more

【问题讨论】:

  • 你试过命令行吗?排除 Jenkins 的问题
  • 是的,它在做 mvn sonar:sonar 时会抛出同样的错误

标签: maven maven-2 jenkins continuous-integration sonarqube


【解决方案1】:

问题显然来自您的 Nexus 存储库或您在 POM/settings.xml 文件/Jenkins 设置中进行的某些特定配置。您应该联系处理此“http://troop:8081”Nexus 实例的人员以了解如何处理您的问题。

顺便说一句,没有必要强制使用 sonar-maven-plugin 插件的版本:这只会给你带来麻烦。

【讨论】:

  • 我已经移除了 sonar-maven-plugin 的强制。但它仍然抛出同样的错误。
  • 这只是一个旁注......您的主要问题是关于插件存储库的配置,可能是在您项目的 POM 中,在您的服务器的 settings.xml 文件中或在Jenkins 配置。
  • 非常感谢。当您指出时,问题出在存储库上。我们没有为 3.3.2 Sonar 版本部署工件。我们为 3.3 部署了工件。因此,我将 Sonar 更改为 3.3,它运行良好。再次感谢。
【解决方案2】:

您使用的是什么数据库?,如果它默认为 derby 数据库,则只允许来自本地主机的连接,因此声纳和詹金斯应该在同一台机器上运行。如果这是问题所在,我可以提供进一步的指导,但简而言之,要么更改数据库,要么更改 derby 连接属性,要么在声纳和詹金斯机器之间提供 ssh 隧道。

【讨论】:

    【解决方案3】:

    在您的配置中使用 sonar-maven-plugin 2.0-beta-1 而是 sonar-maven-plugin:1.0-beta-2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 2018-08-07
      • 2018-05-05
      • 1970-01-01
      • 2016-02-21
      • 1970-01-01
      相关资源
      最近更新 更多