如何为具有多个源目录的项目运行SonarQube Findbugs Analysis

时间:2017-10-24 12:36:05

标签: maven sonarqube findbugs sonarqube-scan

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

这是文件夹结构

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

所以,正如你所看到的,有些模块/项目有src或gen或者两者兼有,或者没有任何模块/项目。

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

因此,在Jenkins作业配置中,我明确地定义了这样的源:

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

当我使用此配置运行时,对于没有src和gen的模块,分析失败。 (module2,module3,module4)

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

谢谢,

罗恩

1 个答案:

答案 0 :(得分:1)

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

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

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