2011-09-12 15 views
14

Estoy tratando de usar el complemento maven-warpath available here. Pero sigo obteniendo un error en mi archivo pom.xml que dice:Error del complemento: la ejecución no está cubierta por la configuración del ciclo de vida

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

¿Cómo puedo resolver esto? Aquí está mi fragmento pom.xml para el 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 me ofrece una punta QuickFox a "descubrir nuevos conectores M2e" para resolver este error. He instalado la mayoría de los conectores disponibles que parecen aplicarse pero el error sigue ahí. ¿Alguna idea de cómo podría hacer que esto funcione?

Respuesta

29

Este es el nuevo behaviour de m2e (que reemplazó el antiguo plugin m2eclipse). Para especificar qué eclipse debería hacer con el complemento, debe configurar el mapeo del ciclo de vida de compilación en pom.xml del proyecto, o instalar un conector (que decide si el complemento necesita ejecutarse en una compilación eclipse o no), si existe.

Como parece que no hay ningún conector para el plugin maven-warpath, debe definir el comportamiento en el pom. Puede utilizar la segunda corrección rápida de eclipse para esto (Marque permanentemente las clases de adición de objetivos en pom.xml como ignorado en la construcción de eclipse). Esto añadirá la siguiente sección para su 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> 

Usted puede cambiar la acción <ignore> a <execute> si desea procesar el plugin en cada composición de Eclipse (en import, clean, ...).

La configuración del plugin es eclipsar específico y no hacer el pom.xml se ven más bonitas - pero por lo menos no tiene influencia en la construcción de Maven ....

+0

@FrVaBe hace el segundo eclipse quickfix para esto (Marque Permamnently objetivo add-classes en pom.xml como ignorado en eclipse build). puede afectar la ejecución de mi aplicación web? –

+0

@Amira Manai No debería afectar la ejecución, ya que no tiene influencia en la construcción maven. – FrVaBe

+0

Por lo que puedo ver en mis pruebas, ese enfoque está omitiendo directamente maven-warpath-plugin de la compilación Maven, ¿no? Quiero decir, espero recibir un artefacto ' warpath' como una dependencia en mi guerra principal, que no se puede identificar. –

Cuestiones relacionadas