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)を使用しています。
公式ドキュメントでは、 後期交換 と呼ばれています。
以下を行うと、以前に別のプラグインによって設定された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
ファイルでargLine
をproperty
として設定できます。
<properties>
<argLine>-DCRR.Webservice.isSimulated=true -D...</argLine>
</properties>
上記の両方のソリューションは正しく機能します。