Desde que uso Maven, he podido construir e instalar en mis proyectos de repositorio locales que tienen etiquetas Javadoc incompletas (por ejemplo, un parámetro faltante).
Sin embargo, desde que migré a Java 8 (1.8.0-ea-b90) Maven es absolutamente estricto con las etiquetas de documentación faltantes y me muestra muchos errores de Javadoc relacionados con problemas de Javadoc cuando intento construir o instalar un proyecto donde el Javadoc no es "Perfecto". Algunos de los proyectos que estoy tratando de compilar e instalar en mi repositorio local son proyectos de terceros desde los cuales no tengo control. Por lo tanto, la solución de solo arreglar todos los Javadocs en todos estos proyectos no parece ser factible en mi escenario.
Esta es una pequeña parte de la salida que veo cuando ejecuto mvn clean package install
mi proyecto:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.026s
[INFO] Finished at: Mon Apr 08 21:06:17 CEST 2013
[INFO] Final Memory: 27M/437M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9:jar (attach-javadocs) on project jpc: MavenReportException: Error while creating archive:
[ERROR] Exit code: 1 - /Users/sergioc/Documents/workspaces/heal/jpc/src/main/java/org/jpc/engine/prolog/PrologDatabase.java:10: error: @param name not found
[ERROR] * @param terms the terms to assert
[ERROR] ^
[ERROR] /Users/sergioc/Documents/workspaces/heal/jpc/src/main/java/org/jpc/engine/prolog/PrologDatabase.java:11: warning: no description for @return
[ERROR] * @return
[ERROR] ^
El complemento Javadoc Maven está configurado de esta manera en mi POM:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Como dije antes, todo funciona bien si vuelvo a Java 7. ¿Tal vez es un error relacionado con Maven ejecutándose en Java 8? ¿Cómo podría hacer que funcione (es decir, poder construir el Javadoc del proyecto e instalar su código en mi repositorio local) con Java 8? He probado con Maven 3.0.3 y 3.0.5 en OSX.
ACTUALIZAR:
Si cambio la configuración de mi complemento Javadoc con <failOnError>false</failOnError>
(gracias Martin):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Luego, el proyecto se instala en mi repositorio local. Sin embargo, el Javadoc JAR todavía no se genera.
Un fragmento de la salida que veo en la consola con esta nueva configuración es:
[ERROR] MavenReportException: Error al crear el archivo: Código de salida: 1 - /Users/....java:18: advertencia: no @param ... La línea de comando era: / Library / Java / Home / bin / javadoc @options @paquetes
Consulte los archivos Javadoc generados en '/ Users / sergioc / Documents / workspaces / heal / minitoolbox / target / apidocs' dir.
en org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043) en org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMoche.java.:ava.:ava.:ava.:ava.parte.ma.ma.ma.vava.javac. .javadoc.JavadocJar.execute (JavadocJar.java:181) en org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) en org.apache.maven.lifecycle.internal.MojoExecutorejecute.mo. : 209) en org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) en org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) en org.apache. maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) en org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) en org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) en org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.ja) en org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) en org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156) en org.apache.maven.cli.MavenCli.execute (MavenCli.java : 537) en org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) en org.apache.maven.cli.MavenCli.main (MavenCli.java:141) en sun.reflect.NativeMethodAccessorImpl.invoke0 ( Método nativo) en sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) en sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) en java.lang.reflect.Method.invoque (Method.java:491) en org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) en org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230) en org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) en org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352)
¿Alguna solución sobre cómo construir las fuentes, instalar el proyecto y generar el Javadoc JAR en un solo paso, ya que funcionaba con Java 7?