为多个 java 项目设置 sonar-runner

Posted

技术标签:

【中文标题】为多个 java 项目设置 sonar-runner【英文标题】:Setup sonar-runner for multiple java projects 【发布时间】:2012-01-19 05:32:58 【问题描述】:

我正在尝试运行 sonar-runner 以一次性分析多个 Java 项目。根据documentation,只需为每个项目创建一个sonar-project.properties 文件即可。但我不清楚我必须将这些 sonar-project.properties 文件放在哪里。

我尝试在 $SONAR_RUNNER_HOME/conf 文件夹中添加多个 .properties 文件,但跑步者似乎没有选择它们。它只看到 sonar-project.properties 文件。

关于如何为多个项目运行 sonar-runner 有什么建议吗?

【问题讨论】:

【参考方案1】:

实际上,让 sonar runner 分析多个项目非常简单,只要它们在同一个文件系统中即可。只需将属性文件放在离项目不远的目录中即可。然后在此属性文件中声明您的每个项目。

假设您在 dev/general/BasicStuff、dev/service/CoolStuff、dev/utility/UtilStuff 和 dev/display/FrameWorkStuff 中有 4 个项目。

如hereWay #2 中所述,您在 dev 中创建一个包含该行的文件

sonar.modules=BasicStuff,CoolStuff,UtilStuff,FrameWorkStuff

对于每个“模块”,一行

BasicStuff.sonar.projectBaseDir=general/BasicStuff
CoolStuff.sonar.projectBaseDir=service/CoolStuff

在项目目录中,您依次创建一个包含其他所需信息的文件,例如

sonar.projectName=BasicStuff
sonar.sources=src

如果您以***属性作为目标启动 sonar runner,您将获得一个全面的结果,其中显示了项目中的指标,并允许您深入了解每个项目。

希望这就是你要找的。​​p>

【讨论】:

非常有用。我对其进行了调整以使用 Jenkins/Sonar 构建,它节省了大量时间。只需创建一个构建作业而不是 11 个。【参考方案2】:

从 2.0 开始,Sonar runner 可以使用多个模块,如 here 所述

【讨论】:

问题是关于多个项目而不是多个模块在同一个项目中。您是说您提到的链接也适用于多个 java 项目。 Mark O'Connor 在他的回答中提到它不支持在一次调用中分析多个项目。 首先链接已经失效,但其次,看起来项目与模块的定义是从声纳运行器的角度来看的......在这种情况下,您可以定义一个项目并传递不同的源目录,这将包括不同项目的来源,只要它们可以从您的文件系统访问。这将在一个声纳项目分析中为您提供多个 Java 项目的“项目”快照。【参考方案3】:

Sonar runner 支持具有多个模块的项目。它不支持在一次调用中分析多个项目。

Java 运行程序需要针对每个项目运行,在每个项目目录中获取属性文件。

【讨论】:

以上是关于为多个 java 项目设置 sonar-runner的主要内容,如果未能解决你的问题,请参考以下文章

SonarQube 扫描仪:使用非默认 Java

发现一sonar-runner bug

如何去除sonarqube自动扫描

jenkins报错sonar-runner: 未找到命令

jenkins报错sonar-runner: 未找到命令

从 sonar-runner 迁移到 MSBuild Runner。 sonar-project.properties 文件去哪儿了?