如果跳过 Maven 测试,则跳过声纳插件执行

问题描述 投票:0回答:1

我已在我的 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>

java maven sonarqube
1个回答
3
投票

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

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

<execution>
块中控制何时应跳过执行。在给定的情况下,我们可以将跳过逻辑绑定到属性
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>
© www.soinside.com 2019 - 2024. All rights reserved.