Seit ich Maven verwende, kann ich in meinen lokalen Repository-Projekten unvollständige Javadoc-Tags (z. B. einen fehlenden Parameter) erstellen und installieren.
Seit ich auf Java 8 (1.8.0-ea-b90) migriert bin, ist Maven absolut streng in Bezug auf fehlende Dokumentations-Tags und zeigt mir viele Javadoc-Fehler im Zusammenhang mit Javadoc-Problemen, wenn ich versuche, ein Projekt zu erstellen oder zu installieren, bei dem Javadoc nicht vorhanden ist "perfekt". Einige der Projekte, die ich in meinem lokalen Repository kompilieren und installieren möchte, sind Projekte von Drittanbietern, über die ich keine Kontrolle habe. Die Problemumgehung, nur alle Javadocs in all diesen Projekten zu reparieren, scheint in meinem Szenario nicht machbar zu sein.
Dies ist ein kleiner Teil der Ausgabe, die ich sehe, wenn ich sie mvn clean package install
in meinem Projekt ausführe :
[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] ^
Das Javadoc Maven-Plugin ist in meinem POM folgendermaßen konfiguriert:
<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>
Wie ich bereits sagte, funktioniert alles einwandfrei, wenn ich zu Java 7 zurückkehre. Ist dies möglicherweise ein Fehler im Zusammenhang mit Maven, das in Java 8 ausgeführt wird? Wie könnte ich es mit Java 8 zum Laufen bringen (dh in der Lage sein, das Javadoc des Projekts zu erstellen und seinen Code in meinem lokalen Repository zu installieren)? Ich habe sowohl mit Maven 3.0.3 als auch mit 3.0.5 in OSX getestet.
AKTUALISIEREN:
Wenn ich meine Javadoc-Plugin-Konfiguration mit ändere <failOnError>false</failOnError>
(danke 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>
Dann wird das Projekt in meinem lokalen Repository installiert. Die Javadoc-JAR wird jedoch immer noch nicht generiert.
Ein Fragment der Ausgabe, die ich in der Konsole mit dieser neuen Konfiguration sehe, ist:
[ERROR] MavenReportException: Fehler beim Erstellen des Archivs: Code beenden: 1 - /Users/....java:18: Warnung: no @param ... Befehlszeile war: / Library / Java / Home / bin / javadoc @options @Pakete
Weitere Informationen finden Sie in den generierten Javadoc-Dateien im Verzeichnis '/ 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.executeReport (AbstractJavado) .javadoc.JavadocJar.execute (JavadocJar.java:181) unter org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) unter org.apache.maven.lifecycleec : 209) unter org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) unter org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) unter org.apache. maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) unter org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) unter org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) unter org.apache.maven.lifecycle.internal.LifecycleStarter.ec. unter org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) unter org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156) unter org.apache.maven.cli.MavenCli.execute (MavenCli.java) : 537) unter org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) unter org.apache.maven.cli.MavenCli.main (MavenCli.java:141) unter sun.reflect.NativeMethodAccessorImpl.invoke0 ( Native Method) unter sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) unter sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) unter java.lang.reflect.Method.Rufen Sie (Method.java:491) unter org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) unter org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230) auf. unter org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) unter org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352)
Gibt es eine Problemumgehung zum Erstellen der Quellen, Installieren des Projekts und Generieren der Javadoc-JAR in einem Schritt, während mit Java 7 gearbeitet wurde?