Estou usando o Eclipse 3.7 Indigo com o Maven M2E Plugin 1.0.100.
Usando o arquétipo JBoss 7.x JavaEE 6 EAR, o pom para EAR está me dando este erro:
Execução de plug-in não coberta pela configuração do ciclo de vida: org.apache.maven.plugins: maven-ear-plugin: 2.6: generate-application-xml (execução: default-generate-application-xml, fase: generate-resources)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.6</version>
<configuration>
<!-- Tell Maven we are using Java EE 6 -->
<version>6</version>
<!-- Use Java EE ear libraries as needed. Java EE ear libraries
are in easy way to package any libraries needed in the ear, and automatically
have any modules (EJB-JARs and WARs) use them -->
<defaultLibBundleDir>lib</defaultLibBundleDir>
<modules></modules>
</configuration>
<plugin>
fonte
target
pasta. Você não gostaria que isso fosse repetido "de forma incremental" ao salvar cada arquivo de origem. Ou talvez você não quer isso. Realmente, o m2e não tem idéia sobre sua compilação específica. É possível armazenar o que o m2e deve fazer no Eclipse, POM ou, possivelmente, instalar um conector do m2e que inclua mais conhecimento no m2e para lidar com a etapa de construção. Estas são as opções que você deve ver. Entendo que você não quer deixar seu POM m2e ciente, mas é um bom lugar para configurar isso centralmente para todos os seus desenvolvedores.mesmo assim, é tarde demais, mas minha solução foi simples, clique com o botão direito do mouse na mensagem de erro no Eclipse e escolha Quick Fix >> Ignore para cada pom com esses erros
fonte
O Eclipse tem o conceito de compilações incrementais, o que é incrivelmente útil, pois economiza muito tempo.
Como isso é útil
Digamos que você acabou de alterar um único arquivo .java. Os construtores incrementais poderão compilar o código sem precisar recompilar tudo (o que levará mais tempo).
Agora, qual é o problema com os plug-ins do Maven
A maioria dos plugins maven não é projetada para compilações incrementais e, portanto, cria problemas para o m2e. O m2e não sabe se o objetivo do plugin é algo crucial ou irrelevante. Se ele apenas executar todos os plug-ins quando um único arquivo for alterado, levará muito tempo.
Essa é a razão pela qual o m2e depende de informações de metadados para descobrir como a execução deve ser tratada. O m2e criou opções diferentes para fornecer essas informações de metadados e a ordem de preferência é a seguinte (do maior para o menor)
1,2 refere-se à especificação da seção pluginManagement na tag do seu arquivo pom ou de qualquer um dos pais. O M2E lê essa configuração para configurar o projeto. O snippet abaixo instrui o m2e a ignorar os objetivos
jslint
ecompress
do yuicompressor-maven-plugin3) Caso você não prefira poluir seu arquivo pom com esses metadados, você pode armazená-lo em um arquivo XML externo (opção 3). Abaixo está um arquivo de mapeamento de amostra que instrui o m2e a ignorar os objetivos
jslint
ecompress
do yuicompressor-maven-plugin4) Caso não goste de nenhuma dessas três opções, você pode usar um conector m2e (extensão) para o plug-in maven. O conector, por sua vez, fornecerá os metadados para m2e. Você pode ver um exemplo das informações de metadados em um conector neste link . Você deve ter notado que os metadados se referem a um configurador. Isso significa simplesmente que o m2e delegará a responsabilidade para essa classe java específica fornecida pelo autor da extensão. O configurador pode configurar o projeto (como, por exemplo, adicionar pastas de origem adicionais, etc.) e decidir se deve executar o plugin real do maven durante uma construção incremental (se não gerenciado adequadamente dentro do configurador, pode levar a inúmeras compilações de projetos)
Consulte esses links para obter um exemplo do configurador ( link1 , link2 ). Portanto, caso o plug-in seja algo que possa ser gerenciado através de um conector externo, você poderá instalá-lo. O m2e mantém uma lista desses conectores contribuídos por outros desenvolvedores. Isso é conhecido como catálogo de descoberta. O m2e solicitará que você instale um conector se você ainda não possui nenhum metadado de mapeamento do ciclo de vida para a execução através de qualquer uma das opções (1-6) e o catálogo de descoberta possui alguma extensão que pode gerenciar a execução.
A imagem abaixo mostra como o m2e solicita que você instale o conector para o plugin build-helper-maven-plugin. .
5) M2e encoraja os autores de plugins para suportar compilação incremental e mapeamento do ciclo de vida de alimentação dentro dos itself.This-plugin Maven significaria que os usuários não terão que usar os mapeamentos de ciclo de vida adicionais ou connectors.Some plugin de autores já implementado este
6) Por padrão, o m2e mantém os metadados de mapeamento do ciclo de vida da maioria dos plug-ins comumente usados, como o maven-compiler-plugin e muitos outros.
Agora, de volta à pergunta: você provavelmente pode apenas fornecer um mapeamento de ciclo de vida ignorado em 1, 2 ou 3 para o objetivo específico que está criando problemas para você.
fonte
Uma boa solução para lembrá-lo de que o m2e poderia ser melhor configurado, sem o projeto herdar um marcador de erro falso positivo, é apenas fazer o downgrade desses erros para avisos:
Janela -> Preferências -> Maven -> Erros / Avisos -> Execução de plug-in não coberta pela configuração do ciclo de vida = Aviso
fonte
Tentei executar o plugging específico logo após a limpeza, ou seja, pós-limpeza (o padrão é fase limpa). Isso funcionou para mim com o eclipse indigo. Acabei de adicionar o pós-limpeza resolvido o problema para mim.
fonte
phase
e umgoal
para oexecution
pom.xml que me foi fornecido e ainda recebo o erro.Consegui resolver o mesmo problema com o maven-antrun-plugin e o jaxb2-maven-plugin no Eclipse Kepler 4.3, aplicando esta solução: http://wiki.eclipse.org/M2E_plugin_execution_not_covered#Eclipse_4.2_add_default_mapping
Portanto, o conteúdo do meu% elipse_workspace_name% /. metadata / .plugins / org.eclipse.m2e.core / lifecycle-mapping-metadata.xml é o seguinte:
* Teve que reiniciar o Eclipse para ver os erros desaparecidos.
fonte
No Maven Eclipse (m2e) versão 0.12, todos os objetivos do ciclo de vida do Maven devem mapear para uma extensão m2e instalada. Nesse caso, o
maven-ear-plugin
objetivo era não mapeadodefault-generate-application-xml
.Você pode excluir metas de ciclo de vida não mapeadas simplesmente seguindo as instruções aqui:
https://wiki.eclipse.org/M2E_plugin_execution_not_covered
Como alternativa, basta clicar com o botão direito do mouse na mensagem de erro no Eclipse e escolher
Quick Fix
->Ignore for every pom with such errors
.Você deve ter cuidado ao ignorar os objetivos do ciclo de vida: normalmente, os objetivos fazem algo útil e, se você os configurar para serem ignorados no Eclipse, poderá perder etapas importantes de construção. Você também pode considerar adicionar suporte à extensão EAR do Maven Eclipse para o objetivo do ciclo de vida não mapeado.
fonte
Com o mecanismo explicado na resposta de Jan, instruí o plug-in m2e a ignorar o objetivo "generate-application-xml". Isso elimina o erro e parece funcionar, pois o m2e cria o application.xml.
Então, basicamente, o erro nos forçou a decidir qual mecanismo é responsável pela geração do application.xml quando a compilação do Maven é executada no Eclipse sob o controle do plugin m2e. E nós decidimos que m2e está no comando.
fonte
Você precisa entender o conteúdo em M2E_plugin_execution_not_covered e seguir as etapas mencionadas abaixo:
<ignore/>
under<action>
.por exemplo: para erro de gravação-projeto-propriedades, inclua esse trecho na
<pluginExecutions>
seção do arquivo lifecycle-mapping-metadata.xml:Você não verá erros no futuro para nenhum projeto.
fonte
Embora a pergunta seja muito antiga, eu gostaria de compartilhar a solução que funcionou para mim porque já verifiquei tudo quando se trata desse erro. Foi uma dor, passei dois dias tentando e no final a solução foi:
atualize o plugin M2e no eclipse
limpe e construa novamente
fonte