JacocoのMavenプラグインを実行しています。 prepare-agent
ゴールは正常に実行されますが、何らかの理由でjacoco.exec
ファイルを生成しません。その後、report
ゴールはSkipping JaCoCo execution due to missing execution data file
に文句を言います。
何か案は?
https://groups.google.com/forum/#!topic/jacoco/LzmCezW8VKA を読んだところ、prepare-agent
argLine
と呼ばれるsurefireプロパティを設定します。このプロパティをオーバーライドすると( https://issues.Apache.org/jira/browse/SUREFIRE-951 推奨されるもの)、jacocoが実行されてしまうことはありません。
解決策は次のものを置き換えることです。
<argLine>-Dfile.encoding=${project.build.sourceEncoding}</argLine>
と
<argLine>-Dfile.encoding=${project.build.sourceEncoding} ${argLine}</argLine>
つまり、jacocoのargLine
を新しい値に追加します。
[〜#〜] update [〜#〜]: Fodder で指摘されているように、常に実行しているとは限りませんJaCoCoと他のプラグインセットはありません${argLine}
その後、Mavenは${argLine}
は未定義です。これを解決するには、何を${argLine}
JaCoCoがスキップされたときのようになります:
<properties>
<argLine/>
</properties>
この場合、説明されているように、$ {argLine}の代わりに@ {argLine}を使用します ここ 。
ビルド時に常にJaCoCoを実行しているとは限らない場合、@ Giliのソリューションは、argLine
が見つからないため、機能しません。代わりに、カスタム値を使用してPOMにプロパティargLine
を追加します。 JaCoCoの準備エージェントがそのプロパティに追加し、Surefireは追加されたargLineを使用します。
<properties>
<argLine>whatever your custom argline variables are</argLine>
</properties>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<!-- Don't put argLine config here! -->
</plugin>
</plugins>