web-dev-qa-db-ja.com

maven-surefire-pluginにargLineparamの値を追加します

maven-surefire-plugin + Sonarを一緒に使用していますが、maven-surefire-pluginのargLineパラメーターに値を追加したいと思います。

だから私はそれをしました:

<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20.1</version>
            <configuration>
                <argLine>-DCRR.Webservice.isSimulated=true -D...</argLine>
            </configuration>
        </plugin>
        ...
    </plugins>
</build>

しかし、この場合、私はargLineパラメーターの元の値を上書きしており、Sonarはjacoco.execファイルを生成しません。

Mavenデバッグログ(-X)で、値を上書きせずにargLineparamの値が-javaagent:/opt/jenkins/.../myproject-SONAR/.repository/org/jacoco/org.jacoco.agent/0.7.4.201502262128/org.jacoco.agent-0.7.4.201502262128-runtime.jar=destfile=/opt/jenkins/.../myproject-SONAR/target/jacoco.execであることがわかります。

このパラメーターの元の値を追加する適切な方法は何ですか(元の値を保持して+値を追加します)?

Apache Maven 3.5.0、Javaバージョン:1.8.0_131、ベンダー:OracleCorporation)を使用しています。

7
zappee

公式ドキュメントでは、 後期交換 と呼ばれています。

以下を行うと、以前に別のプラグインによって設定されたargLineパラメータの値が上書きされるため、これを行わないでください:

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <argLine>-D... -D...</argLine>
    </configuration>
</plugin>

既存の値を保持して構成を追加する適切な方法は、@{...}構文を使用することです。

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <argLine>@{argLine} -D... -D...</argLine>
    </configuration>
</plugin>

または、pom.xmlファイルでargLinepropertyとして設定できます。

<properties>
    <argLine>-DCRR.Webservice.isSimulated=true -D...</argLine>
</properties>

上記の両方のソリューションは正しく機能します。

12
zappee