java maven code-generation lombok maven-javadoc-plugin

Lombok Maven javadoc: informe agregado con fuentes generadas



code-generation maven-javadoc-plugin (3)

Tengo un proyecto java multimódulo construido con Maven para el que quiero generar javadocs con javadoc:aggregate . La estructura del proyecto se ve así:

parent ├─lomboklib └─other

También estoy usando el Proyecto Lombok para generar algunos métodos en el proyecto. Lo he configurado con éxito para que funcione con módulos individuales ejecutando delombok primero con el plugin de Lombok maven . Para módulos individuales (lomboklib), esto generará código fuente en

target/generated-sources/delombok

que luego es procesado por maven-javadoc-plugin y la herramienta javadoc . Esto fue resuelto originalmente en esta pregunta .

¿Cómo puedo configurar el informe javadoc:aggregate para usar también las fuentes generadas?

He puesto una caja de arena del problema con todas las definiciones de módulo en Github . Idealmente, debería poder correr

mvn clean compile javadoc:aggregate

En el proyecto principal, y haga que todo se compile y obtenga javadocs para todo el proyecto.


Creé una configuración de compilación alternativa que creará javadocs agregados a partir de fuentes generadas, aunque la secuencia de llamadas tiene dos pasos:

mvn package mvn -N pre-site

La configuración de construcción ahora se publica en Github . La versión actual solo admite un árbol de proyecto de profundidad uno, pero puede, por supuesto, modificarse. Funciona reuniendo las dependencias bajo el directorio de target los padres y luego ejecutando el script Ant incluido.

Finalmente, si se ejecuta bajo Jenkins, el mvn -N pre-site se puede invocar en el mismo trabajo a través del paso de ejecución del shell . La publicación de los javadocs en nuestra versión de Jenkins requiere el uso de la acción posterior a la compilación " Usar editores de otro proyecto ".


Descargué el proyecto de ejemplo de Github para recrear su problema y descubrí que se debía a que lombok-maven-plugin estaba configurado innecesariamente en el pom de nivel superior; solo es necesario para el módulo que contiene el código lombok. Simplemente eliminando esa configuración, javadoc:aggregate comporta como se esperaba.


Tengo el mismo problema y he podido solucionarlo haciendo referencia a las rutas de origen directamente desde el proyecto principal.

Pruebe esta configuración para el plugin maven-javadoc-plugin de su padre.

<configuration> <sourcepath> lomboklib/target/generated-sources/delombok; other/target/generated-sources/delombok </sourcepath> </configuration>

Realmente no es ideal. Se siente como un poco de un hack.