如何在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(只有您本地的mavensettings.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引用的文档