如何在jenkins中嵌套多模块maven项目?

如何在jenkins中嵌套多模块maven项目?,jenkins,sonarqube,sonarqube-scan,Jenkins,Sonarqube,Sonarqube Scan,我的项目结构如下所示: services A a1 a2 pom.xml B b1 b2 pom.xml pom.xml 我想扫描最内部的项目(a1,a2,b1,b2)。在jenkins Post步骤中,我在没有属性文件的Execute SonarQube Scanner中添加了“分析属性”,主要是: sonar.modules=A,B sonar.sources=src 我想从服务目录生成,但失败,出现以下错误: “A

我的项目结构如下所示:

services
  A
    a1
    a2
    pom.xml
  B
    b1
    b2
    pom.xml 
  pom.xml 
我想扫描最内部的项目(
a1
a2
b1
b2
)。在jenkins Post步骤中,我在没有属性文件的Execute SonarQube Scanner中添加了“分析属性”,主要是:

sonar.modules=A,B  
sonar.sources=src  
我想从服务目录生成,但失败,出现以下错误:

“A:a1”的文件夹“src”不存在

我知道SonarQube试图在目录
A
中查找
src
,但我有一些嵌套项目,如
a1
(我也尝试了
A.modules=a1,a2
,但没有成功)


如何让扫描仪分析这些项目?

使用SonarQube分析maven项目时,使用maven目标
sonar:sonar
而不是
sonar.properties
配置

在使用maven时,您甚至不必更改任何分析属性。maven配置将已经提供有关源文件夹等的sonar信息。请检查如何设置它。通常,您不必为此更改项目的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,我希望这可以帮助其他人解决类似的问题。

您的意思是在pom中添加依赖项吗?我不喜欢修改别人的项目。是否只需编辑“分析属性”?感谢您的快速回复。我也不喜欢编辑settings.xml。我终于想出了一个办法,看看我的答案。从这个问题不清楚为什么不能简单地使用
mvn sonar:sonar
。这将分析整个项目的所有子模块,而无需任何额外配置。您不需要编辑
pom.xml
settings.xml
,这应该是现成的。你能告诉我,当你使用mvn sonar:sonar分析时,你缺少了什么吗?@janos,我误解了mvn sonar:sonar。事实上,我发现它比属性更方便。但它需要settings.xml中的config sonar,比如@slartidan引用的文档