【问题标题】:SonarRunner can't find sonar.projectKey, sonar.projectName, sonar.projectVersion, sonar.sourcesSonarRunner 找不到 sonar.projectKey、sonar.projectName、sonar.projectVersion、sonar.sources
【发布时间】:2013-09-17 17:40:03
【问题描述】:

我正在尝试让 Jenkins 作为构建后步骤运行 Sonar。

Jenkins 运行 SonarRunner [1] 但这失败了:

ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: You must define the following mandatory properties for 'Unknown': sonar.projectKey, sonar.projectName, sonar.projectVersion, sonar.sources

如果我运行mvn sonar:sonar [2],它可以正常工作。听起来 SonarRunner 几乎忽略了 pom.xml。 如何让 SonarRunner 从 Maven 获取这些属性?


[1]/Users/builds/.jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/Default_Sonar_Runner/bin/sonar-runner -Dsonar.jdbc.url=jdbc:h2:tcp://myServer:1009/sonar -Dsonar.host.url=http://myServer/sonar/ -Dsonar.projectBaseDir=/Users/builds/.jenkins/workspace/myProject

[2]mvn sonar:sonar -Dsonar.jdbc.url=jdbc:h2:tcp://myServer:1009/sonar -Dsonar.host.url=http://myServer/sonar/ -Dsonar.projectBaseDir=/Users/builds/.jenkins/workspace/myProject

【问题讨论】:

    标签: maven jenkins sonarqube


    【解决方案1】:

    浪费一个晚上的好方法......

    根据this Sonar Runner 不适用于 Maven 项目。事实证明,您应该在“构建后操作”(而不是“构建后步骤”)下查看“声纳”。请参阅here 了解更多信息。

    【讨论】:

    • 从 SonarQube 5.x 开始,SonarQube 文档声明使用 Jenkins“Sonar”构建后操作已被弃用 docs.sonarqube.org/display/SONARNEXT/…
    • 链接已损坏 :(
    • 我的 Jenkins 告诉我它已被弃用,但它解决了我的问题
    【解决方案2】:

    方法一: 如果您在 Jenkins 中安装了扫描仪,则只需添加以下内容 在您工作的这个位置
    发布步骤 -> 执行 SonarQube 扫描仪 -> 分析属性

    sonar.projectKey=myProject1
    sonar.sources=.
    

    方法二: 另一种选择是使用仍然可以正常工作的已弃用方法 构建后操作 -> 使用 Maven 进行 SonarQube 分析

    方法三: 构建 -> 目标和选项 -> “输入以下脚本” -Dmaven.test.skip=true 安装声纳:声纳 -Dsonar.forceAnalysis=true -Dsonar.host.url=http://localhost:9000/ -Dsonar.branch=my-branch-1

    【讨论】:

      【解决方案3】:

      有一些 Maven GAV 信息数据映射到 Jenkins 变量中,看这个线程:Automatically derive mandatory SonarQube properties from pom file in Jenkins

      【讨论】:

        【解决方案4】:

        sonar-scanner.properties中尝试以下配置:

        sonar.host.url=http://localhost:9000
        sonar.projectKey=<your project package>
        sonar.projectName=<your project name with absolute path>
        sonar.projectVersion=1.0
        sonar.sources=src/main/java/
        sonar.language=java
        sonar.java.binaries=target/classes
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-07-23
          • 1970-01-01
          • 2022-11-03
          • 1970-01-01
          • 2013-09-01
          • 2014-04-10
          • 2013-07-09
          • 1970-01-01
          相关资源
          最近更新 更多