【问题标题】:How to nest multi-module maven projects in jenkins?如何在jenkins中嵌套多模块maven项目?
【发布时间】:2017-12-21 14:49:19
【问题描述】:

我的项目结构如下:

services
  A
    a1
    a2
    pom.xml
  B
    b1
    b2
    pom.xml 
  pom.xml 

我想扫描最里面的项目 (a1,a2,b1,b2)。在jenkins Post Steps中,我在Execute SonarQube Scanner中添加了“Analysis properties”,没有property files,主要是:

sonar.modules=A,B  
sonar.sources=src  

我想从服务目录构建,但失败并出现以下错误:

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

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

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

【问题讨论】:

  • 从这个问题不清楚为什么你不能简单地使用mvn sonar:sonar。那应该使用所有子模块分析整个项目,而无需任何额外配置。您不需要编辑pom.xmlsettings.xml,这应该可以开箱即用。您能告诉我使用mvn sonar:sonar 分析时缺少什么吗?
  • @janos ,我误解了 mvn sonar:sonar 确实,我发现它比属性更方便。但它需要在 settings.xml 中配置声纳,如 @slartidan 参考文档

标签: jenkins sonarqube sonarqube-scan


【解决方案1】:

这是我的解决方案:

sonar.modules=A,B 
A.sonar.modules=a1,a2
B.sonar.modules=b1,b2
sonar.projectBaseDir=.
sonar.sources=src  

关键是 projectBaseDir ,我希望这可以帮助有人遇到类似的问题。

【讨论】:

    【解决方案2】:

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

    在使用 maven 时,您甚至不必更改任何分析属性。 maven 配置已经提供有关源文件夹等的声纳信息。请查看the official documentation 了解如何设置它。通常你不必为此更改项目的 pom.xml(只有你本地的 maven settings.xml)。

    【讨论】:

    • 你的意思是在pom中添加依赖吗?我不喜欢修改某人的项目。无论如何只是编辑“分析属性”?
    • 感谢您的快速回复。我也不喜欢编辑 settings.xml。我终于想办法了,看看我的答案。
    猜你喜欢
    • 1970-01-01
    • 2012-06-29
    • 2012-09-18
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 2018-10-25
    相关资源
    最近更新 更多