Eu tenho um projeto maven em eclipse e tenho objetivos maven que executam processadores de anotação para gerar código. A pasta de saída para este código é target / generated-sources / apt.
Para que o eclipse veja este código gerado, preciso adicionar target / generated-sources / apt como uma pasta de origem para o projeto eclipse.
No entanto, isso causa um erro do tipo "Problema de configuração Maven", informando
A configuração do projeto não está atualizada com pom.xml. Execute a atualização da configuração do projeto
Acho que entendo por que esse é o caso, já que o eclipse tem um conjunto de pastas de origem diferente do conjunto de maven. Mas preciso desse conjunto diferente, pois preciso do eclipse para ver as pastas de origem geradas ...
Ao fazer uma construção do maven puro, essas pastas de código-fonte serão incluídas na construção, pelo maven.
btw, eu atualizei para o lançamento oficial do eclipse do plugin maven eclipse, m2e 1.0 - que costumava ser m2eclipse. Gostaria de ver se consigo encontrar uma alternativa / solução para isso com o plugin m2e antes de ter que voltar para a versão antiga do m2eclipse.
m2e connector for build-helper-maven-plugin
está instalado no Eclipsebuild-helper-maven-plugin
com<version>
especificado como3.2.0
(o mais tardar, da escrita), não há necessidade de usar Apt M2E Connector. Atualmente trabalhando no Eclipse IDE 2020-06, usando Maven 3.6.3 embutido no Eclipse, e nossos problemas com a pasta de origem tendo exclusões (**) foram embora depois de tentar adicionar os caminhos de diretório das pastas de origem. Agora, todas as inclusões têm (** / *. java) neles.Clique com o botão direito na mensagem de erro:
na Visualização de problemas, selecione Correção rápida e clique em Concluir para selecionar a configuração de projeto de atualização padrão . Isso resolve tudo.
fonte
Depois de mudar para novas versões de m2e / maven / apt, ... eu tive erros de construção por causa dos arquivos duplicados, causados pelo buildpath adicionado pelo buildhelper, então eu precisei remover as pastas "geradas pelo apt" do buildhelper.
Para corrigir o problema no Eclipse, não adicionando a pasta "gerada pelo apt" por meio de Atualizar configuração do Maven no M2E, escrevi um plug-in M2E para corrigir esse problema. Ele adiciona o outputDirectories configurado no maven-apt-plugin ao buildpath do Projeto.
https://apt-m2e.googlecode.com
fonte
No m2e 1.0, a manipulação dos plug-ins Maven mudou. Você pode estar faltando uma extensão m2e específica para o seu plugin de geração de código. Aqui está toda a documentação que consegui encontrar.
Este relatório de bug também pode ser relevante.
fonte
https://bugs.eclipse.org/bugs/show_bug.cgi?id=350081
solicitação no CXF JIRA (consulte 1 ) para adicionar mapeamentos de ciclo de vida no próprio plugin cxf-codegen. Isso exigiria m2e 1.1, mas acredito que é uma abordagem melhor do que ter conectores construídos fora do projeto cxf, assumindo que a API de mapeamento do ciclo de vida mudaria com menos frequência do que cxf-codegen-plugin e cxf.
fonte
Você também pode usar o conector buildhelper m2e disponível no catálogo de descoberta. Estou usando o Eclipse 3.7
fonte
Eclipse Java EE IDE para desenvolvedores da web. Versão: Juno Service Release 1
funcionam perfeitamente.
Mas em eclipse eu tenho o mesmo erro na classe Asinc.
Basta pressionar F5 no projeto. Corrija este problema.
fonte
Isso foi o que eu achei que funcionou bem usando o spring 3.1.1, que tem a versão 3.0.6 também. Depois de configurar os plug-ins e colocá-los na área correta do pom e incluir o argline e endorseddirs para que as fontes java sejam colocadas na pasta target / generated-sources / cxf, o maven gerou as fontes ok.
....
Se sua pasta wsdl estiver em $ {basedir} / src / main / resources, ela irá encontrá-la automaticamente
Espero que isto ajude! ~ wildbill
fonte
Caso, por algum motivo, você não consiga usar o plug-in auxiliar de construção, a maneira mais fácil (embora não seja tão conveniente e um tanto entediante) que descobri para lidar com isso é:
mvn install
. Agora atualize o projeto pai clicando com o botão direito e selecionando Maven-> Atualizar projeto ...Isso geralmente funciona bem para projetos que usam uma fonte semi estática para geração de código, como SOAP WSDLs (Apache CXF) ou código gerado a partir de um banco de dados (jOOQ). Para APT e outros códigos do tipo AspectJ, ele não funciona bem porque você edita o código-fonte com frequência.
fonte
a configuração do plugin auxiliar de construção funcionou para nós.
mas esteja ciente de que a pasta de destino sempre deve ser igual à configuração do plugin que você está usando para o próprio processamento de anotação.
por exemplo, o maven-processor-plugin usa a pasta de destino $ {project.build.directory} / generated-sources / apt como padrão. se desejar outro destino para seus arquivos de origem gerados, você pode configurá-lo pela tag conforme mostrado abaixo.
fonte
Aqui está a solução
fonte