Подтвердить что ты не робот

Плагин Jacoco Maven - выполнение плагинов, не охватываемых конфигурацией жизненного цикла

Я новичок в Maven и хочу использовать плагин Jacoco Maven для создания моих проектов.

Я установил пример проекта с TestNG единственной зависимостью.

Вот часть pom.xml:

<dependencies>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.6.2.201302030002</version>
            <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>

И я получаю эту ошибку:

Выполнение плагина не распространяется на конфигурацию жизненного цикла: org.jacoco: jacoco-maven-  плагин: 0.6.2.201302030002: подготовка-агент (исполнение: по умолчанию, фаза: инициализация)

Что я делаю неправильно? Приветствия

4b9b3361

Ответ 1

Вы можете игнорировать цель плагина, добавляя что-то вроде этого к вашему pom.xml

<pluginManagement>
        <plugins>
            <!--This plugin configuration is used to store Eclipse m2e settings only.
                It has no influence on the Maven build itself.-->
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>org.jacoco</groupId>
                                    <artifactId>jacoco-maven-plugin</artifactId>
                                    <versionRange>[0.5,)
                                    </versionRange>
                                    <goals>
                                        <goal>prepare-agent</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <!-- m2e doesn't know what to do with jacoco,
                                        let ignore it or annoying error markers appear
                                        see http://wiki.eclipse.org/M2E_plugin_execution_not_covered
                                     -->
                                    <ignore></ignore>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>

Ответ 2

Поскольку это связано с плагином Eclipse Maven, альтернативно это можно установить локально в настройках Eclipse. Перемещение конфигурации из проекта pom файла помогает коду прост и чист, без особых сведений о IDE.

Перейдите в Eclipse → Настройки → Maven → Отображения жизненного цикла. Добавьте lifecycle-mapping-metadata.xml в следующем виде:

<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
  <pluginExecutions>
    <pluginExecution>
      <pluginExecutionFilter>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <versionRange>[0.5,)</versionRange>
        <goals>
          <goal>prepare-agent</goal>
        </goals>
      </pluginExecutionFilter>
      <action>
        <ignore />
      </action>
    </pluginExecution>
  </pluginExecutions>
</lifecycleMappingMetadata>

Перезагрузите файл сопоставлений жизненного цикла, а затем MavenUpdate Project

Ответ 3

Eclipse теперь предлагает быстрое исправление, чтобы отключить предупреждение и сохранить его в пользовательских настройках (в Eclipse → Предпочтения → Maven → Отображение жизненного цикла lifecycle-mapping-metadata.xml, как указано @iker-aguayo) поэтому вам не нужно вручную создавать или редактировать файл. Это полезно в тех случаях, когда вы не можете обновить pom (например, используя проект с открытым исходным кодом, где вы не можете совершить.)

Ответ 4

В конечном итоге я решил игнорировать плагин и вместо этого использовать команду CLI mvn для теста с охватом кода.

Внутри вашей Eclipse IDE щелкните правой кнопкой мыши по предупреждению о красном цвете jacoco-Maven-плагин. Вам нужно три варианта всплывающего окна, чтобы исправить это предупреждение, выберите игнорировать предупреждение, которое приведет к автоматически создаваемому разделу в вашем pom.xml, который начинается с строки комментариев,

<!--This plugin configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->

В командной строке запустите команду mvn перед каждой проверкой, и это должно вызвать цель тестирования с охватом,

$mvn clean package  

Ответ 5

Эта проблема специфична для Eclipse, так как изложена в вики M2E. Извините, я не могу помочь больше, потому что я не использую Eclipse.