如何在 jenkins 中嵌套多模块 maven 项目?
How to nest multi-module maven projects in jenkins?
我的项目结构如下所示:
services
A
a1
a2
pom.xml
B
b1
b2
pom.xml
pom.xml
我想扫描最里面的项目(a1
,a2
,b1
,b2
)。在jenkins Post Steps中,我在Execute SonarQube Scanner without 属性 files中添加了"Analysis properties",主要是:
sonar.modules=A,B
sonar.sources=src
我想从服务目录构建,但失败并出现此错误:
The folder 'src' does not exist for 'A:a1'
我知道,SonarQube 试图在目录 A
中找到 src
,但我有一些嵌套项目,如 a1
(我也尝试过 A.modules=a1,a2
没有成功)
如何让扫描仪分析这些项目?
使用 SonarQube 分析 maven 项目时,使用 maven 目标 sonar:sonar
而不是 sonar.properties
配置。
使用 Maven 时,您甚至不必更改任何分析 属性。 Maven 配置已经提供了有关源文件夹等的声纳信息。检查 the official documentation 如何设置它。通常您不必为此更改项目的 pom.xml(只有本地 maven settings.xml
)。
这是我的解决方案:
sonar.modules=A,B
A.sonar.modules=a1,a2
B.sonar.modules=b1,b2
sonar.projectBaseDir=.
sonar.sources=src
重点是 projectBaseDir ,希望这能帮助遇到类似问题的人。
我的项目结构如下所示:
services
A
a1
a2
pom.xml
B
b1
b2
pom.xml
pom.xml
我想扫描最里面的项目(a1
,a2
,b1
,b2
)。在jenkins Post Steps中,我在Execute SonarQube Scanner without 属性 files中添加了"Analysis properties",主要是:
sonar.modules=A,B
sonar.sources=src
我想从服务目录构建,但失败并出现此错误:
The folder 'src' does not exist for 'A:a1'
我知道,SonarQube 试图在目录 A
中找到 src
,但我有一些嵌套项目,如 a1
(我也尝试过 A.modules=a1,a2
没有成功)
如何让扫描仪分析这些项目?
使用 SonarQube 分析 maven 项目时,使用 maven 目标 sonar:sonar
而不是 sonar.properties
配置。
使用 Maven 时,您甚至不必更改任何分析 属性。 Maven 配置已经提供了有关源文件夹等的声纳信息。检查 the official documentation 如何设置它。通常您不必为此更改项目的 pom.xml(只有本地 maven settings.xml
)。
这是我的解决方案:
sonar.modules=A,B
A.sonar.modules=a1,a2
B.sonar.modules=b1,b2
sonar.projectBaseDir=.
sonar.sources=src
重点是 projectBaseDir ,希望这能帮助遇到类似问题的人。