未针对 sonarqube 分析项目代码

Posted

技术标签:

【中文标题】未针对 sonarqube 分析项目代码【英文标题】:Project code is not being analyzed for sonarqube 【发布时间】:2021-03-09 22:53:28 【问题描述】:

我在 azure DevOps 中有一个 repo,只有文件夹作为测试。 现在,我在 azure DevOps 中以这种方式给出了任务结构。但我看不到在 sonarqube 中分析的代码。代码选项卡显示为空白。有人可以帮我解决我哪里出错了吗?我不想在源中给出文件夹名称。我希望分析我在分支中添加的任何代码。

编辑:刚刚意识到这仅发生在功能短暂的分支上..我的 sonarqube 版本是 8.0

步骤:

任务:SonarQubePrepare@4 输入: SonarQube:'连接名称' 扫描仪模式:'CLI' 配置模式:'手动' cliProjectKey:“管道声纳演示” cliProjectName: '管道声纳演示' cliSources:“。” 额外属性:| # 将传递给扫描仪的附加属性, # 每行放一个key=value,例如: sonar.exclusions=**/*.xml

【问题讨论】:

您能否检查您的 Azure 管道,是否正在签出功能分支。如果未签出功能分支,则 SonarQube 不会分析代码。 【参考方案1】:

SonarQube 扩展提供了三个任务,您将在构建定义中使用这些任务来分析您的项目:

准备分析配置任务,配置所有需要的 执行构建之前的设置。

此任务是强制性的。 对于 .NET 解决方案或 Java 项目,它有助于集成 与 MSBuild、M​​aven 和 Gradle 任务无缝衔接。

运行代码分析任务,实际执行分析 源代码。

Maven 或 Gradle 项目不需要此任务,因为 扫描仪将作为 Maven/Gradle 构建的一部分运行。

发布 Quality Gate Result 任务,显示 Quality Gate 状态 在构建摘要中并让您了解应用程序是否 已准备好“质量方面”的生产。

此任务是可选的。 它可以显着增加整体构建时间,因为它 将轮询 SonarQube,直到分析完成。省略这个 任务不会影响 SonarQube 上的分析结果 - 它只是 表示 Azure DevOps 构建摘要页面不会显示状态 分析或 SonarQube 上项目仪表板的链接。

看来你还需要添加运行代码分析任务。关于如何使用 SonarScanner for Azure DevOps,请参考以下文档:

https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-azure-devops/

【讨论】:

那些在那里..我在这里添加了准备任务..但其他两个任务也添加到了管道中.. 检查您的项目类型并参考文档docs.sonarqube.org/latest/analysis/scan/… 来设置 SonarQube 任务。 查看文档中的Analysing other project types 部分。选择使用独立扫描仪,然后将 SonarQube 属性存储在 SCM 的(标准)sonar-project.properties 文件中,您只需确保“设置文件”正确指向它。这是推荐的方式。或者您的 SCM 中没有这样的文件,您可以单击手动提供配置以在构建定义中指定它。不建议这样做,因为它的便携性较差。 刚刚意识到这不仅仅发生在功能分支上......对于其余的其他分支,它工作正常......我的 sonarqube 版本是 8.0..这是现有的功能吗? 你检查过你的特性分支了吗?这个分支与其他分支不同吗?您可以共享您的整个管道,以便我们检查管道中是否有问题。

以上是关于未针对 sonarqube 分析项目代码的主要内容,如果未能解决你的问题,请参考以下文章

SonarQube Azure Devops 未授权

用于 Typescript 的 Sonarqube 上未显示代码覆盖率

Maven项目: 集成SonarQube进行代码审查

手把手使用SonarQube分析改善项目代码质量

用SonarQube和SonarLint分析maven项目中的Java代码坏味道

用SonarQube和SonarLint分析maven项目中的Java代码坏味道