【问题标题】:Setting up Sonar-Gerrit plugin : Failed to execute command 'gerrit review ' on UserAtHost设置 Sonar-Gerrit 插件:无法在 UserAtHost 上执行命令“gerrit review”
【发布时间】:2018-11-07 19:25:46
【问题描述】:

我正在尝试在 Jenkins 作业中设置 Sonar-Gerrit plugin

设置

  1. 当补丁设置为 Gerrit 时启动 Jenkins Maven 作业
  2. 我在 Jenkins 输出中看到了错误。

这是 Jenkins 控制台错误输出:

[错误] 无法执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar ( default-cli) 在项目父级上:无法执行项目构建器:fr.techad.sonar.GerritProjectBuilder:无法在 UserAtHost@55a9f72f [user=jenkins, host=172.21.33.193, port= 上执行命令 'gerrit review 298816ea2b24645fd971a8c0833582cec1163dac -j' 29418]:拒绝主机密钥:172.21.33.193 -> [帮助 1] [错误] [错误] 要查看错误的完整堆栈跟踪,请使用 -e 开关重新运行 Maven。 [错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。 [错误] [错误] 有关错误和可能的解决方案的更多信息,请阅读以下文章: [错误] [帮助 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

到目前为止我所尝试的

查看 [Help 1]。它说

这个异常不是由 Maven 核心本身产生的,而是由插件产生的。

  1. 我尝试登录Jenkins服务器并在目录(/usr/share/tomcat/.jenkins/workspace/sonar-maven)中运行“mvn sonar:sonar”,运行成功,我可以看到结果声纳仪表板。
  2. 重新配置 Gerrit 触发器插件。 然后我检查了 Gerrit Trigger 中的连接,很遗憾成功了。

有人遇到同样的错误吗?我该如何解决?

软件版本

  • Jenkins 2.101 , Sonar-Gerrit 插件 (2.3) , Gerrit Trigger (2.21.2)
  • 格瑞特 2.14.6
  • 声纳库 6.7

【问题讨论】:

    标签: jenkins sonarqube gerrit sonar-gerrit


    【解决方案1】:

    错误是:

    Failed to execute command 'gerrit review 298816ea2b24645fd971a8c0833582cec1163dac -j'
    

    Sonar-gerrit 使用 gerrit-trigger 插件在 Gerrit 中投票。 gerrit-trigger 配置似乎有问题。我知道您已经检查过 gerrit-trigger 和 Gerrit 之间的连接,但这是与“gerrit review”命令有关的错误。

    检查“gerrit review”命令:

    Jenkins > 管理 Jenkins > Gerrit 触发器 > 编辑 > 高级... > Gerrit 验证命令

    例如,它适用于我:

    gerrit review <CHANGE>,<PATCHSET> --message 'Job finished <BUILDS_STATS>' --code-review <CODE_REVIEW>
    

    之后,如果错误仍然存​​在,请登录 Jenkins 服务器并运行“gerrit review”命令手动执行:

    ssh -p 29418 jenkins@172.21.33.193 gerrit 审查

    如果您遇到同样的错误,您可以尝试在命令中添加“-vvv”来调试它。

    【讨论】:

    • 谢谢,我检查了命令。例如成功的`gerrit review , --message 'Build Success' --code-review `.And我还删除了“--code-verify”
    • 它不起作用。同样的错误。 Reject Hostkey:[Gerrit url] 对吗?您还有其他解决方案吗?
    • 我刚刚添加了更多信息
    • 我已经登陆了Jenkins服务器ssh -p 29418 jenkins@172.21.33.193 Gerrit review --verified +1 可以看到“Patch set 1 :Verified +1 " 而不是错误。我认为 Gerrit 审查命令是正确的。
    • 当您说“登录 Jenkins 服务器”时,您确定您登录的是执行 Maven/Sonar-gerrit 作业的机器吗?我的意思是,通常这项工作是由 Jenkins 从机而不是 Jenkins 服务器执行的。
    【解决方案2】:

    你的例外说:

    [ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin
    

    这是你的声纳 maven 插件失败了,而不是 sonar-gerrit 插件。

    Failed to execute command 'gerrit review 298816ea2b24645fd971a8c0833582cec1163dac -j'
    

    我不知道 sonarqube 命令“gerrit review -j”是做什么的,而且这个 sonar-maven-plugin 似乎也不知道。

    您可以尝试研究这个问题 - 它可能会帮助您为您的项目配置 sonarqube:Why Maven command MVN sonar:sonar works without any plugin configuration in my POM.xml?

    【讨论】:

    • 我在源代码 (src/main/java/fr/techad/sonar/gerrit/network/ssh/GerritSshConnector.java) 中找到的这个命令,例如“gerrit review %s -j”跨度>
    • 您是否尝试使用 Maven 插件连接 Gerrit 和 Sonar,而不使用 Jenkins 执行的 sonar-gerrit 插件?那么你就不需要 sonar-gerrit 插件了。如果你想使用它,你不需要提供像'gerrit review...'这样的命令——你只需要设置maven命令“clean install sonar:sonar -Dsonar.analysis.mode=preview -Dsonar.report.export .path=sonar-report.json" 在您的 Jenkins 作业设置中,并将更改推送到 gerrit 存储库。
    • 我更改了“使用 Maven 进行 SonarQube 分析”的设置,作业构建成功。但是使用`-Dsonar.analysis.mode=preview -Dsonar.report.export.path=sonar-report.json` ,我在 Sonar Dashboard 中看不到任何报告。警告是 > WARN:无法在工作区中找到“report-task.txt”。 SonarScanner 成功了吗?
    • jenkins 控制台输出显示 Report has loaded and contains 242 issues Issues to be commented: 0,但 Gerrit 历史记录仍然显示 Sonarqube violations have not been found.@Tatiana Didik
    猜你喜欢
    • 2017-03-02
    • 2018-08-08
    • 2018-06-25
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多