Tengo un proyecto maven en eclipse y tengo objetivos maven que ejecutan procesadores de anotaciones para generar código. La carpeta de salida de este código es target / generate-sources / apt.
Para que eclipse vea este código generado, necesito agregar target / generate-sources / apt como carpeta de origen al proyecto eclipse.
Sin embargo, esto hace que haya un error del tipo "Problema de configuración de Maven" que dice
La configuración del proyecto no está actualizada con pom.xml. Ejecutar la actualización de la configuración del proyecto
Creo que entiendo por qué este es el caso, ya que eclipse tiene un conjunto de carpetas de origen diferente al conjunto de maven. Pero necesito este conjunto diferente, ya que necesito eclipse para poder ver las carpetas de origen generadas ...
Al hacer una compilación pura de maven, estas carpetas de origen se incluirán en la compilación, por maven.
Por cierto, me he actualizado a la versión oficial de eclipse del complemento maven eclipse, m2e 1.0, lo que solía ser m2eclipse. Me gustaría ver si puedo encontrar una solución alternativa para esto con el complemento m2e antes de tener que volver a la versión anterior de m2eclipse.
m2e connector for build-helper-maven-plugin
se instala en Eclipsebuild-helper-maven-plugin
la<version>
especificada como3.2.0
(la última como de la escritura), no hay necesidad de usar Apt M2E conector. Actualmente trabajando en Eclipse IDE 2020-06, usando Maven 3.6.3 incrustado en Eclipse, y nuestros problemas con la carpeta de origen que tiene exclusiones (**) desaparecieron después de intentar agregar las rutas de directorio de las carpetas de origen. Ahora, todas las inclusiones tienen (** / *. java) en ellos.Haga clic con el botón derecho en el mensaje de error:
en la Vista de problemas, seleccione Solución rápida y haga clic en Finalizar para seleccionar la configuración predeterminada del proyecto de actualización . Esto lo arregla.
fuente
Después de cambiar a nuevas versiones de m2e / maven / apt, ... tuve errores de construcción debido a los archivos duplicados, causados por la ruta de construcción agregada por buildhelper, por lo que necesitaba eliminar las carpetas "generadas por apt" de buildhelper.
Para solucionar el problema en Eclipse, sin agregar la carpeta "generada por apt" mediante la actualización de la configuración de Maven en M2E, escribí un complemento M2E para solucionar este problema. Agrega los outputDirectories configurados en maven-apt-plugin a la ruta de compilación del proyecto.
https://apt-m2e.googlecode.com
fuente
En m2e 1.0, el manejo de los complementos de Maven ha cambiado. Es posible que le falte una extensión m2e específica para su complemento de generación de código. Aquí está toda la documentación que logré encontrar.
Este informe de error también puede ser relevante.
fuente
https://bugs.eclipse.org/bugs/show_bug.cgi?id=350081
solicitud en CXF JIRA (ver 1 ) para agregar asignaciones de ciclo de vida en el propio cxf-codegen-plugin. Esto requeriría m2e 1.1 pero creo que es un mejor enfoque que tener conectores construidos fuera del proyecto cxf, asumiendo que la API de mapeo del ciclo de vida cambiaría con menos frecuencia que cxf-codegen-plugin y cxf.
fuente
También puede utilizar el conector buildhelper m2e disponible en el catálogo de descubrimiento. Estoy usando Eclipse 3.7
fuente
Eclipse Java EE IDE para desarrolladores web. Versión: Juno Service Release 1
funciona perfectamente.
Pero en eclipse tengo el mismo error en la clase Asinc.
Simplemente presione F5 en el proyecto. Solucione este problema.
fuente
Esto fue lo que encontré que funcionó bien con Spring 3.1.1, que también tiene la versión 3.0.6. Una vez que obtuve la configuración de los complementos y los coloqué en el área correcta del pom e incluí el argline y endorseddirs para que las fuentes de Java se coloquen en la carpeta target / generate-sources / cxf, entonces Maven generó las fuentes correctamente.
....
Si su carpeta wsdl está en $ {basedir} / src / main / resources, la encontrará automáticamente
¡Espero que esto ayude! ~ pico silvestre
fuente
En caso de que, por alguna razón, no pueda usar el complemento de ayuda de compilación de la manera más fácil (aunque no tan conveniente y algo tediosa), he encontrado que lidiar con esto es:
mvn install
. Ahora actualice el proyecto principal haciendo clic derecho y seleccionando Maven-> Actualizar proyecto ...Esto generalmente funciona bien para proyectos que utilizan una fuente semiestática para la generación de código, como SOAP WSDL (Apache CXF) o código generado a partir de una base de datos (jOOQ). Para APT y otros códigos similares a AspectJ, no funciona tan bien porque está editando la fuente con frecuencia.
fuente
la configuración del complemento de ayuda de compilación funcionó para nosotros.
pero tenga en cuenta que la carpeta de destino siempre tiene que ser igual a la configuración del complemento que está utilizando para el procesamiento de anotaciones en sí.
por ejemplo, maven-processor-plugin usa la carpeta de destino $ {project.build.directory} / generate-sources / apt por defecto. si desea otro destino para sus archivos fuente generados, puede configurarlo mediante la etiqueta como se muestra a continuación.
fuente
Aqui esta la solucion
fuente