为多个 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的主要内容,如果未能解决你的问题,请参考以下文章
从 sonar-runner 迁移到 MSBuild Runner。 sonar-project.properties 文件去哪儿了?