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>