jacoco готовить-агент не создает jacoco.файл exec
Я запускаю плагин Maven Jacoco. The prepare-agent
цель работает нормально, но не создает jacoco.exec
файл по какой-то причине. Впоследствии report
цель жалуется Skipping JaCoCo execution due to missing execution data file
.
какие идеи?
2 ответов
прочитав https://groups.google.com/forum#!тема/jacoco / LzmCezW8VKA, оказывается, что prepare-agent
задает свойство surefire с именем argLine
. Если вы переопределите это свойство (что-то, что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
новый значение.
обновление: так как указано корм, если вы не всегда используете JaCoCo и никаких других наборов плагинов ${argLine}
тогда Maven будет жаловаться, что ${argLine}
неопределено. Чтобы решить эту проблему, просто определите, что ${argLine}
должно выглядеть так, когда JaCoCo пропускается:
<properties>
<argLine/>
</properties>
в этом случае используйте @{argLine} вместо ${argLine} как объяснено здесь.
Если вы не всегда используете JaCoCo при создании, то решение @Gili не работает, так как оно не может найти argLine
. Вместо этого добавьте свойство argLine
в вас POM с пользовательскими значениями. Агент подготовки 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>