2013-02-12 2 views
18

Я новичок в Maven и хочу использовать плагин Jacoco 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: подготовка-агент (исполнение: по умолчанию, фаза: инициализация)

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

ответ

-2

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

17

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

<pluginManagement> 
     <plugins> 
      <!--This plugin's 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's 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> 
+0

Добавить это внутри теги – SkorpEN

12

Поскольку это связано с плагином 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> 

Обновить Отображения файл жизненного цикла, а затем Maven ->Update Project

-1

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

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

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

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

$mvn clean package 
+0

Это не отвечает на вопрос. Вопрос в частности касается ошибки плагина. Использование командной строки не разрешает ошибку – Pat

+0

@Pat Это ответ на вопрос. Этот ответ объясняет, как игнорировать предупреждение, пожалуйста, внимательно прочитайте его. Если вы следуете инструкциям здесь, ваш файл POM будет обновлен, начиная с строки комментария в разделе кода, чтобы игнорировать предупреждения.CLI - это просто альтернатива. –

+0

Я по-прежнему считаю, что игнорирование плагина в Eclipse не решает проблему, это всего лишь обходной путь. Весь смысл использования плагина maven в Eclipse заключается в том, что мне не нужно идти в командную строку и вводить команды «mvn». Это обходное решение не устраняет фактическую ошибку. – Pat

0

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

Смежные вопросы

 Смежные вопросы