Da quando uso Maven sono stato in grado di creare e installare nei miei repository locali progetti con tag Javadoc incompleti (ad esempio un parametro mancante).
Tuttavia, da quando sono migrato a Java 8 (1.8.0-ea-b90) Maven è assolutamente severo riguardo alla mancanza di tag di documentazione e mi mostra molti errori Javadoc relativi a problemi Javadoc quando provo a costruire o installare un progetto in cui Javadoc non è "Perfetto". Alcuni dei progetti che sto cercando di compilare e installare nel mio repository locale sono progetti di terze parti da cui non ho il controllo. Quindi la soluzione alternativa del semplice aggiustare tutti i Javadocs in tutti questi progetti non sembra fattibile nel mio scenario.
Questa è una piccola parte dell'output che vedo quando eseguo mvn clean package install
nel mio progetto:
[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] ^
Il plug-in Javadoc Maven è configurato in questo modo nel mio 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>
Come ho detto prima, tutto funziona bene se torno a Java 7. Forse è un bug relativo a Maven in esecuzione su Java 8? Come potrei farlo funzionare (ovvero, poter costruire il Javadoc del progetto e installarne il codice nel mio repository locale) con Java 8? Ho testato con Maven 3.0.3 e 3.0.5 in OSX.
AGGIORNARE:
Se cambio la configurazione del mio plug-in Javadoc con <failOnError>false</failOnError>
(grazie 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>
Quindi il progetto viene installato nel mio repository locale. Tuttavia, il JAR Javadoc non viene ancora generato.
Un frammento dell'output che vedo nella console con questa nuova configurazione è:
[ERRORE] MavenReportException: errore durante la creazione dell'archivio: codice di uscita: 1 - /Users/....java:18: avviso: no @param ... La riga di comando era: / Library / Java / Home / bin / javadoc @options @pacchi
Fare riferimento ai file Javadoc generati nella directory '/ Users / sergioc / Documents / workspaces / heal / minitoolbox / target / apidocs'.
at org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043) at org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeReportjo0ache.Mav.99J.av .javadoc.JavadocJar.execute (JavadocJar.java:181) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) at org.apache.maven.lifecjo.ecut.oec.External : 209) su org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) su org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) su org.apache. maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) su org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) su org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) su org.apache.maven.lifecycle.internal.LifecycleStarter.execycle) su org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) su org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156) su org.apache.maven.cli.MavenCli.execute (MavenCli.java : 537) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) at org.apache.maven.cli.MavenCli.main (MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0 ( Metodo nativo) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.langetfl.invoke (Method.java:491) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230) su org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) su org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352)
Qualche soluzione alternativa su come costruire i sorgenti, installare il progetto e generare il JAR Javadoc in un solo passaggio mentre funzionava con Java 7?