2011-09-12 12 views
14

Próbuję użyć wtyczki maven-warpath-plugin available here. Ale ciągle pojawia się błąd w moim pliku pom.xml, który mówi:Błąd wtyczki: wykonanie nie jest objęte konfiguracją cyklu życia

Plugin execution not covered by lifecycle configuration: org.appfuse.plugins:maven-warpath-plugin:2.1.0:add-classes (execution: default, phase: generate-sources)

Jak rozwiązać ten problem? Oto fragment mojego pom.xml na wtyczce:

<plugin> 
    <groupId>org.appfuse.plugins</groupId> 
    <artifactId>maven-warpath-plugin</artifactId> 
    <version>2.1.0</version> 
    <extensions>true</extensions> 
    <executions> 
     <execution> 
      <goals> 
       <goal>add-classes</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Eclipse daje mi cynk quickfox do „odkrywania nowych złączy m2e”, aby rozwiązać ten problem. Zainstalowałem większość dostępnych złączy, ale wydaje się, że błąd nadal istnieje. Jakieś pomysły, jak mogę to zrobić?

Odpowiedz

29

To jest nowy behaviour z m2e (który zastąpił starą wtyczkę m2eclipse). Aby określić, jakie zaćmienie powinno zostać wykonane z wtyczką, musisz skonfigurować mapowanie cyklu życia kompilacji w pliku pom.xml projektu - lub zainstalować konektor (który decyduje o tym, czy wtyczka musi zostać wykonana w kompilacji Eclipse, czy nie), jeśli istnieje.

Wygląda na to, że nie ma złącza dla wtyczki maven-warpath, ale musisz zdefiniować zachowanie w pom. Możesz użyć do tego drugiego skrótu do eclipse (Trwałe oznaczanie klas dodawania bramek w pom.xml jako ignorowane w kompilacji Eclipse). Spowoduje to dodanie następującą sekcję do pom:

<build> 
    ...... 
    <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.appfuse.plugins 
            </groupId> 
            <artifactId> 
             maven-warpath-plugin 
            </artifactId> 
            <versionRange> 
             [2.1.0,) 
            </versionRange> 
            <goals> 
             <goal>add-classes</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <ignore></ignore> 
           </action> 
          </pluginExecution> 
         </pluginExecutions> 
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

Można zmienić działanie na <execute><ignore> jeśli chcesz przetworzyć wtyczki w każdej kompilacji Zaćmienie (na import, clean, ...).

Konfiguracja wtyczki zaćmienie specyficzne i nie czyni pom.xml wyglądają ładniej - ale przynajmniej nie ma ona wpływu na Maven budować ....

+0

@FrVaBe czy druga łatka eclipse dla tego (Permamently zaznacz klasę dodawania bramek w pom.xml jako ignorowaną w kompilacji Eclipse). może wpłynąć na moją aplikację webową? –

+0

@Amira Manai Nie powinno to wpływać na wykonanie, ponieważ nie ma wpływu na konstrukcję maven. – FrVaBe

+0

O ile widzę w moich testach, to podejście omija bezpośrednio wątek maven-warpath z wersji Maven, prawda? Mam na myśli, że spodziewam się otrzymać artefakt '" jako zależność w mojej głównej wojnie, której nie można zidentyfikować. –

Powiązane problemy