【问题标题】:How do I stop the maven sonar plugin from running tests?如何阻止 Maven 声纳插件运行测试?
【发布时间】:2017-11-21 09:58:45
【问题描述】:

我有一个两阶段的 CI 管道,第一阶段运行编译和测试,第二阶段运行 maven sonar 插件。

我正在使用这个 maven 插件:

<plugin>
    <groupId>org.sonarsource.scanner.maven</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>3.0.1</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>sonar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

我将以下参数发送到我的 maven 命令:

-DskipTests=true

这没有效果。 (即它阻止 maven 触发测试,但随后声纳插件再次触发它们)。

我的问题是:如何阻止 maven 声纳插件运行测试?

注意 - 我相信这与 this question 不同(即不是重复的),因为这是 maven 并且这个问题是 gradle。

【问题讨论】:

  • 我不明白你的配置。 sonar-maven-plugin 没有 package 目标。您想通过sonar:sonar 目标跳过什么、测试或代码分析?您能否分享您的构建日志以查看究竟发生了什么以及您想跳过哪些目标?
  • 谢谢,这很有帮助。我已经更新了问题。
  • mvn sonar:sonar 不运行测试。它必须由另一个目标触发。你使用的完整的mvn 命令是什么?

标签: maven sonarqube


【解决方案1】:

我的项目有一个类似的CI setup。但我不使用 sonar-maven-plugin。相反,我在 pom.xml 文件所在的目录中运行了一个 maven 目标:sonar:sonar

$ mvn sonar:sonar

这不会执行单元测试。

本文摘自 official documentation 上使用 SonarQube 分析 Maven 项目。

【讨论】:

    【解决方案2】:

    试试-Dsonar.skip=true

    根据sonar:sonar 目标的插件文档:

    声纳:声纳
    描述:分析项目。必须启动 SonarQube 服务器。
    实现:org.sonarsource.scanner.maven.SonarQubeMojo 语言:java

    可用参数:

    skip (Default: false)
      User property: sonar.skip
      Set this to 'true' to skip analysis.
    

    【讨论】:

    • 谢谢 - 但我不想跳过上传到声纳的信息 - 我已经有了 Jacoco exec 文件。我只想运行声纳。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    相关资源
    最近更新 更多