2011-09-12 8 views
14

Sto provando ad usare il plugin maven-warpath available here. Ma continuo a ricevere un errore nel mio file pom.xml che dice:Errore plugin: esecuzione non coperta dalla configurazione del ciclo di vita

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

Come posso risolvere questo? Ecco il mio frammento di pom.xml per il plugin:

<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 mi offre un suggerimento QuickFox a "scoprire nuovi connettori M2E" per risolvere l'errore. Ho installato la maggior parte dei connettori disponibili che sembrano applicare ma l'errore è ancora lì. Qualche idea su come potrei fare questo lavoro?

risposta

29

Questo è il nuovo behaviour di m2e (che ha sostituito il vecchio plug-in m2eclipse). Per specificare cosa deve fare Eclipse con il plug-in, è necessario configurare il mapping del ciclo di vita della build nel pom.xml del progetto oppure installare un connettore (che decide se il plug-in deve essere eseguito in una build di eclipse o meno) se esiste.

Poiché sembra che non ci sia alcun connettore per il plug-in maven-warpath, è necessario definire il comportamento nel pom. È possibile utilizzare il secondo quickfix di eclisse per questo (contrassegnare in modo permanente le classi di aggiunta degli obiettivi in ​​pom.xml come ignorato nella build di eclipse). Questo aggiungerà la seguente sezione al vostro 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> 

È possibile modificare l'azione da <ignore><execute> se si desidera elaborare il plugin in ciascuna animazione Eclipse (su import, clean, ...).

La configurazione del plugin è eclissare specifico e non rende il pom.xml aspetto molto più gradevole - ma almeno non ha alcuna influenza sul Maven costruire ....

+0

@FrVaBe fa il secondo quickfix dell'eclisse per questo (Perm-mark mark goal add-classes in pom.xml come ignorato in eclipse build). può influenzare l'esecuzione della mia web application ?? –

+0

@Amira Manai Non dovrebbe influire sull'esecuzione in quanto non ha alcuna influenza sulla build di maven. – FrVaBe

+0

Per quanto posso vedere nei miei test, quell'approccio omette direttamente il plugin maven-warpath dal build di Maven, non è vero? Voglio dire, mi aspetto di ricevere un ' warpath' artefatto come dipendenza nella mia guerra principale, che non può essere identificato. –

Problemi correlati