Bamboo - SonarQube 多模块 maven 项目跳过子模块

Posted

技术标签:

【中文标题】Bamboo - SonarQube 多模块 maven 项目跳过子模块【英文标题】:Bamboo - SonarQube multimodule maven project skip the child module 【发布时间】:2017-03-31 06:02:49 【问题描述】:

我在 Bamboo 中创建了 SonarQube 任务。我有一个包含 4 个模块的父 pom。在运行任务时它会跳过子任务。我没有得到根本原因???

父 POM。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mastercard.mpts.emailsms</groupId>
    <artifactId>emailsms-parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0</version>
    <description>EmailSMS Application</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <modules>
        <module>ESBMsgProcessor</module>
        <module>EmailSMSService</module>
        <module>SMTPMsgProcessor</module>
        <module>ESBSMSService</module>
    </modules>

</project>

以下是 SMTPMsgProcessor 的子项

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.mastercard.mpts.emailsms</groupId>
    <artifactId>emailsms-parent</artifactId>
    <version>1.0</version>
  </parent>
  <groupId>com.mastercard.mpts.emailsms</groupId>
  <artifactId>smtpmsgprocessor</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>SMTPMsgProcessor</name>
  <description>Handle Email for SMTP</description>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>

SonarQube 计划的结果是:

30-Mar-2017 08:33:10    [INFO] Reactor Summary:
30-Mar-2017 08:33:10    [INFO] 
30-Mar-2017 08:33:10    [INFO] emailsms-parent .................................... SUCCESS [ 33.879 s]
30-Mar-2017 08:33:10    [INFO] ESBMsgProcessor .................................... SKIPPED
30-Mar-2017 08:33:10    [INFO] EmailSMSService .................................... SKIPPED
30-Mar-2017 08:33:10    [INFO] SMTPMsgProcessor ................................... SKIPPED
30-Mar-2017 08:33:10    [INFO] ESBSMSService ...................................... SKIPPED
30-Mar-2017 08:33:10    [INFO] ------------------------------------------------------------------------
30-Mar-2017 08:33:10    [INFO] BUILD SUCCESS
30-Mar-2017 08:33:10    [INFO] ------------------------------------------------------------------------
30-Mar-2017 08:33:10    [INFO] Total time: 34.260 s
30-Mar-2017 08:33:10    [INFO] Finished at: 2017-03-30T08:33:10-05:00
30-Mar-2017 08:33:11    [INFO] Final Memory: 48M/3050M

我没有添加任何被跳过的内容。此外,由于模块被跳过,我无法看到 soanr 分析。

【问题讨论】:

【参考方案1】:

sonar:sonar Maven 目标是一个聚合器目标:这意味着它仅在根模块上触发一次。然后由 SonarQube Scanner for Maven 自行分析模块。

所以从 Maven 的角度来看,看起来模块被跳过了,但实际上它们被 SonarQube 正确分析了。转到您的 SonarQube Web 界面,您将在项目中找到模块。

【讨论】:

以上是关于Bamboo - SonarQube 多模块 maven 项目跳过子模块的主要内容,如果未能解决你的问题,请参考以下文章

SonarQube 覆盖多模块项目

Sonarqube:为多模块导入 Jacoco xml 报告

适用于 Android 的多模块项目的 SonarQube

Maven SonarQube多模块

如何配置SonarQube以显示多模块maven项目的所有模块?

Jenkins SonarQube 插件多模块代码覆盖率不显示