【发布时间】:2018-04-05 06:23:52
【问题描述】:
我有一个多模块 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' (自然作为 Maven 模型强制分析器仅从 src 中选择)
因此,在 Jenkins 作业配置中,我明确定义了如下来源:
-Dsonar.sources=src,gen
-Dsonar.exclusions=src/test/java/**
当我使用此配置运行时,对于没有 src 和 gen 的模块的分析失败。 (模块2,模块3,模块4)
那么,我该如何运行分析来选择 src 或 gen 或者如果找不到它们中的任何一个则跳过该模块?
谢谢,
罗恩
【问题讨论】:
-
问题是你为什么要检查'gen'文件夹?如果它包含如名称所示仅生成的源代码,那么扫描它是没有意义的。在下一次构建期间,任何可能的修复都将被覆盖。你可以定义一个 sonar-project.properties 文件docs.sonarqube.org/display/SCAN/…
-
是的@Lonzak,'gen' 包含由某些进程生成的用于维护项目结构的 java 文件 (.java)。但是由于一些内部项目要求,我们需要同时扫描“src”和“gen”。我们有 50 多个模块,因此在 sonar-project.properties 中定义所有这些模块并定义它们的源代码会很繁琐
标签: maven sonarqube findbugs sonarqube-scan