如何 运行 对具有多个源目录的项目进行 SonarQube Findbugs 分析

How to Run SonarQube Findbugs Analysis for a project with multiple source directories

我有一个多模块 Maven 项目,其中除了 'src' 之外还有源目录,其中 java 文件所在。

这是文件夹结构

folder1
    -pom.xml

pom.xml 包含这样定义的模块:

<modules>
    <module>module1</module>
    <module>module2</module>
    <module>module3</module>
    <module>module4</module>
    <module>module5</module>
    <module>module6</module>
    <module>module7</module>
    <module>module8</module>
    <module>module9</module>
    <module>module10</module>
</modules>

不同的模块是这样组织的:

module1
    -src
    -gen

module2
    -src

module3
    -gen

module4

module5
    -src
    -gen

因此,如您所见,modules/projects 有 src 或 gen 或两者都有,或者没有。

当我 运行 findbugs 分析时,它只从 'src' 中选择了 java 类 并跳过了 'gen' (自然,因为 Maven 模型强制分析器仅从 src 中选择)

因此,在 Jenkins 作业配置中,我明确定义了源,如下所示:

-Dsonar.sources=src,gen
-Dsonar.exclusions=src/test/java/**

当我运行使用此配置时,对于不具有 src 和 gen 的模块的分析失败。 (模块 2、模块 3、模块 4)

那么,我如何 运行 选择 src 或 gen 的分析,或者如果找不到其中一个模块则跳过该模块?

谢谢,

罗恩

当使用 Maven 的 SonarQube 扫描器时,您不能使用命令行指定仅适用于某些模块的特定属性。

在要修改源代码的模块中,在 pom.xml 中添加一个 属性。例如,在 module5/pom.xml 中添加:

<properties>
  <sonar.sources>src,gen</sonar.sources>
</properties>