Desde que eu uso o Maven, fui capaz de criar e instalar em meus projetos de repositório local que possuem tags Javadoc incompletas (por exemplo, um parâmetro ausente).
No entanto, desde que eu migrei para o Java 8 (1.8.0-ea-b90), o Maven é absolutamente rigoroso quanto à falta de tags de documentação e me mostra muitos erros do Javadoc relacionados a problemas do Javadoc quando tento criar ou instalar um projeto onde o Javadoc não está "perfeito". Alguns dos projetos que estou tentando compilar e instalar no meu repositório local são projetos de terceiros dos quais não tenho controle. Portanto, a solução alternativa de apenas corrigir todos os Javadocs em todos esses projetos não parece viável no meu cenário.
Esta é uma pequena parte da saída que vejo quando executo mvn clean package install
no meu projeto:
[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] ^
O plug-in Javadoc Maven está configurado assim no meu 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 eu disse antes, tudo está funcionando bem se eu voltar ao Java 7. Talvez isso seja um bug relacionado ao Maven em execução no Java 8? Como eu poderia fazê-lo funcionar (ou seja, poder construir o Javadoc do projeto e instalar seu código no meu repositório local) com o Java 8? Eu testei com o Maven 3.0.3 e 3.0.5 no OSX.
ATUALIZAR:
Se eu alterar minha configuração de plug-in Javadoc com <failOnError>false</failOnError>
(obrigado 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>
Em seguida, o projeto é instalado no meu repositório local. No entanto, o Javadoc JAR ainda não foi gerado.
Um fragmento da saída que vejo no console com esta nova configuração é:
[ERRO] MavenReportException: erro ao criar arquivo: código de saída: 1 - /Users/....java:18: aviso: no @param ... A linha de comando era: / Library / Java / Home / bin / javadoc @options @packages
Consulte os arquivos Javadoc gerados em '/ Users / sergioc / Documents / workspaces / heal / minitoolbox / target / apidocs' dir.
em org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043) em org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMojo.java.99) .javadoc.JavadocJar.execute (JavadocJar.java:181) em org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) em org.apache.maven.lifecycle.internal.MojoExecutor.exava. : 209) em org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) em org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) em org.apache. maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) em org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) em org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) em org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:16): em org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) em org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156) em org.apache.maven.cli.MavenCli.execute (MavenCli.java : 537) em org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) em org.apache.maven.cli.MavenCli.main (MavenCli.java:141) em sun.reflect.NativeMethodAccessorImpl.invoke0 ( Método nativo) em sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) em sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) em java.lang.reflect.Method.invocar (Method.java:491) em org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) em org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230) em org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) em org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352)
Alguma solução alternativa sobre como construir as fontes, instalar o projeto e gerar o Javadoc JAR em uma etapa, como estava trabalhando com o Java 7?