すべてのモジュールがグローバル統合テストに参加できる、いくつかのレベルのネストされた Maven プロジェクトがあります。グローバルなマルチ モジュール カバレッジを実現するために、Maven 変数を使用して、複数のモジュールで同じファイルを使用および共有するように jacoco を構成しました${session.executionRootDirectory}
。
<execution>
<id>pre-integration-test</id>
<phase>pre-integration-test</phase>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<propertyName>jacoco.failsafeArgLine</propertyName>
<destFile>${session.executionRootDirectory}/target/jacoco-it.exec</destFile>
</configuration>
</execution>
このように、サブモジュール内でのネストの深さに関係なく、同じデータ ファイルが各モジュールで使用されます。「mvn clean install」を起動すると、jacocoによって正しいデータファイルが生成されることを確認しました。
起動時に問題が発生するようになりましたmvn sonar:sonar
。プラグインはその変数を実際のパスに置き換えることができないようです。ログに次のように表示されます
[INFO] JaCoCoItSensor: JaCoCo IT report not found: /home/tomcat/.jenkins/jobs/MYJOB/workspace/${session.executionRootDirectory}/target/jacoco-it.exec
を使用するとうまくいきません@{session.executionRootDirectory}
。
回避策はありますか?