【问题标题】:Skip sonar plugin execution if maven tests are skipped如果跳过 maven 测试,则跳过声纳插件执行
【发布时间】:2020-12-22 05:04:14
【问题描述】:

我已在我的 pom 中将 Sonar 设置为 maven 插件,并且希望该插件仅在运行测试时运行。用例是我希望声纳插件在我的 CI 服务器上运行,但不是在打包 jar 时。 所以mvn test 应该执行声纳插件,但mvn -DskipTests clean package 不应该。

今天,当我跳过测试时,声纳插件也在运行。

我今天的设置:

<sonar.host.url>https://sonar.myserver.no</sonar.host.url>
<sonar.login>my token</sonar.login>
<sonar.projectName>My app</sonar.projectName>
.....
<plugin>
    <groupId>org.sonarsource.scanner.maven</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>${sonar.maven.plugin.version}</version>
    <executions>
        <execution>
            <id>sonar</id>
            <phase>test</phase>
            <goals>
                <goal>sonar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

【问题讨论】:

  • &lt;configuration&gt;&lt;skip&gt;${skipTests}&lt;/skip&gt;&lt;/configuration&gt; 添加到&lt;execution&gt;-部分。
  • 谢谢,很有魅力!

标签: java maven sonarqube


【解决方案1】:

对于每个插件,我们都可以添加部分

<configuration>
    ...
    <skip>...</skip>
    ...
</configuration>

&lt;execction&gt;-block 中控制何时应该跳过执行。在给定的情况下,我们可以将跳过绑定到属性skipTests

<plugin>
    <groupId>org.sonarsource.scanner.maven</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>${sonar.maven.plugin.version}</version>
    <executions>
        <execution>
            <id>sonar</id>
            <phase>test</phase>
            <goals>
                <goal>sonar</goal>
            </goals>
            <configuration>
                <skip>${skipTests}</skip>
            </configuration>
        </execution>
    </executions>
</plugin>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 2014-09-03
    • 2021-04-30
    • 2017-01-02
    • 1970-01-01
    • 2014-12-10
    相关资源
    最近更新 更多