如何在 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 ,希望这能帮助遇到类似问题的人。