С параметром destFile
вы изменили местоположение, в котором цель prepare-agent
будет записывать файл данных выполнения. По умолчанию это ${project.build.directory}/jacoco.exec
, что означает (по умолчанию) target/jacoco.exec
. Однако цель report
предполагает, что путь к исполняемому файлу должен быть передан в параметре dataFile
, который, разумеется, по умолчанию равен ${project.build.directory}/jacoco.exec
, чтобы они синхронизировались. Поэтому, если вы хотите изменить путь к этому исполняемому файлу, вам необходимо сопоставить эти два параметра. Для того, чтобы не дублировать путь, вы можете использовать свойство Maven, чтобы сделать это:
<properties>
<jacoco.execution.file>${project.build.directory}/coverage-reports/jacoco.exec</jacoco.execution.file>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<configuration>
<destFile>${jacoco.execution.file}</destFile>
<dataFile>${jacoco.execution.file}</dataFile>
</configuration>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Обратите внимание, что это не изменит выходной каталог в JaCoCo отчетов; это просто изменяет путь к исполняемому файлу. Для этого вы можете использовать параметр outputDirectory
:
Выходной каталог для отчетов. Обратите внимание, что этот параметр имеет значение только в том случае, если цель выполняется из командной строки или из жизненного цикла сборки по умолчанию. Если цель выполняется косвенно как часть генерации сайта, вместо этого используется выходной каталог, настроенный в Плагине сайта Maven.
и имеют следующий элемент конфигурации добавлен:
<configuration>
<!-- rest of your JaCoCo configuration -->
<outputDirectory>${project.build.directory}/coverage-reports/jacoco</outputDirectory>
</configuration>
Это убедитесь, что все HTML, XML, CSV и отчеты формируются под target/coverage-reports/jacoco
. Обратите внимание, что эта конфигурация не будет использоваться как часть поколения Maven Site при запуске mvn site
. Во время создания сайта вам нужно будет настроить outputDirectory
maven-site-plugin
.
Еще раз спасибо :) – user1107888