Jenkins 为什么Sonar GitLab插件在使用默认模板时不将分析结果作为注释发送给GitLab?

Jenkins 为什么Sonar GitLab插件在使用默认模板时不将分析结果作为注释发送给GitLab?,jenkins,sonarqube,gitlab,sonarqube-scan,Jenkins,Sonarqube,Gitlab,Sonarqube Scan,我目前有一个jenkins作业,在gitlab项目中使用配置的webhooks进行推送或提交时会触发该作业。一切都很好,当项目应该使用SonarQube scanner for maven方法进行分析时,会对项目进行分析,问题是我想然后将SonarQube分析结果以全局或内联注释的形式推送到给定的项目。所以我已经在sonarQube服务器上安装了。问题是,它并没有给出这些带有结果的评论 正如插件文档中所述,我对全局和内联注释使用了默认模板。SonarQube服务器上的gitlab配置如下所示:

我目前有一个jenkins作业,在gitlab项目中使用配置的webhooks进行推送或提交时会触发该作业。一切都很好,当项目应该使用SonarQube scanner for maven方法进行分析时,会对项目进行分析,问题是我想然后将SonarQube分析结果以全局或内联注释的形式推送到给定的项目。所以我已经在sonarQube服务器上安装了。问题是,它并没有给出这些带有结果的评论

正如插件文档中所述,我对全局和内联注释使用了默认模板。SonarQube服务器上的gitlab配置如下所示:

-gitlab名称是直接指向存储库的https链接

-全局和内联注释中的FreeMarker语法配置直接来自默认模板,您可以在Sonar Gitlab插件中找到该模板


我没有添加任何其他与此相关的配置,除了我在帖子中提到的配置,谢谢。

我已经开始工作了,不同的是我有Jenkins for CI/CD,我没有使用GitLab CI/CD。以下是我必须做的:

  • 在执行声纳扫描时,我必须通过以下属性:

    • sonar.analysis.mode=预览

    • 声纳分支=$GIT_分支

    • sonar.gitlab.project_id={project_id_from_gitlab}

    • sonar.gitlab.commit\u sha=$GIT\u commit

    • sonar.gitlab.ref\u name=$GIT\u分支

  • SonarQube需要在预览模式下运行,以便在GitLab中发布结果

    • 在SonarQube服务器上设置GitLab URL和用户访问令牌

    • 确保Sonar服务器和scanner服务器上的JRE/CACerts上的GitLab证书受信任

    • 步骤1:在Firefox中浏览到您的GitLab URL

    • 步骤2:单击URL旁边的锁定按钮

    • 步骤3:单击安全连接->更多信息
    • 步骤4:单击查看证书->详细信息->导出
    • 步骤5:保存crt文件
    • 步骤6:在Sonar服务器/扫描仪上-打开管理命令提示符
    • 步骤7:浏览至转到java_home\jre\lib\security文件夹
    • 步骤8:运行以下命令,这将把GitLab证书添加到Java可信证书列表中

      keytool -import -alias example -keystore  "C:\Program Files\Java\jre_version\lib\security\cacerts" -file pathtothefile.cer
      
      让我知道这是否适合你

    编辑-添加Jenkins配置屏幕截图。

    你让它工作了吗?我也在尝试做同样的事情,但到目前为止还没有运气。还没有,即使是sonar gitlab plugin creator也在尝试处理这个问题,但是那里的流量不多,所以没有多少人可以提供帮助。然而,我开始有一种感觉,你需要gitlab企业版来完成这项工作。@Patrick,你需要企业版的说法正确吗?我一直在尝试使用community edition来完成这项工作,但我遇到了一些例外情况,比如:“要使用属性“sonar.branch.name”并分析分支,需要开发人员版或更高版本。”Jenkins for CI/CD的意思是,您拥有运行分析的代码,然后将其发布到Jenkins管道中的gitlab?您是否可以从Jenkins和其他地方的整个分析配置上传截图?声纳分析本身的配置可能存在太多差异,这可能会导致此过程无法工作,因此屏幕截图将非常完美,再次感谢。我将我的设置与您在上面附加的声纳屏幕截图进行了比较,唯一的差异是我没有定义全局模板或内联模板。我只是在那里使用默认值。我添加了Jenkins截图。我使用sonarqube扫描器版本的maven,这意味着我只调用顶级maven目标。。。我将尝试这样做,并会让你知道它是否有效。我正在尝试将认证应用于sonarQube,但我不知道如何打开特定服务器上的控制台…你的sonar在哪里运行?它是Mac还是windows服务器?Mac-命令+空格并键入终端windows-windows+r并键入cmd