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.