Odkąd korzystam z Maven, byłem w stanie zbudować i zainstalować w moim lokalnym repozytorium projekty, które mają niekompletne tagi Javadoc (na przykład brakujący parametr).
Ponieważ jednak przeprowadziłem migrację do Javy 8 (1.8.0-ea-b90), Maven jest absolutnie surowy w kwestii brakujących znaczników dokumentacji i pokazuje mi wiele błędów Javadoc związanych z problemami Javadoc, gdy próbuję zbudować lub zainstalować projekt, w którym Javadoc nie jest "idealny". Niektóre projekty, które próbuję skompilować i zainstalować w moim lokalnym repozytorium, to projekty stron trzecich, nad którymi nie mam kontroli. Zatem obejście po prostu naprawienia wszystkich Javadoców we wszystkich tych projektach nie wydaje się wykonalne w moim scenariuszu.
Oto niewielka część danych wyjściowych, które widzę podczas wykonywania mvn clean package install
w moim projekcie:
[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] ^
Wtyczka Javadoc Maven jest skonfigurowana w następujący sposób w mojej 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>
Jak powiedziałem wcześniej, wszystko działa poprawnie, jeśli wrócę do Javy 7. Być może jest to błąd związany z działaniem Mavena w Javie 8? Jak mogę sprawić, by działało (tj. Móc zbudować Javadoc projektu i zainstalować jego kod w moim lokalnym repozytorium) z Javą 8? Testowałem zarówno z Maven 3.0.3, jak i 3.0.5 w OSX.
AKTUALIZACJA:
Jeśli zmienię konfigurację wtyczki Javadoc za pomocą <failOnError>false</failOnError>
(dzięki 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>
Następnie projekt jest instalowany w moim lokalnym repozytorium. Jednak JAR Javadoc nadal nie jest generowany.
Fragment danych wyjściowych, które widzę w konsoli w tej nowej konfiguracji, to:
[BŁĄD] MavenReportException: Błąd podczas tworzenia archiwum: Kod zakończenia: 1 - /Users/....java:18: ostrzeżenie: no @param ... Wiersz polecenia to: / Library / Java / Home / bin / javadoc @options @pakiety
Zapoznaj się z wygenerowanymi plikami Javadoc w katalogu „/ Users / sergioc / Documents / workspaces / heal / minitoolbox / target / apidocs”.
w org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043) w org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMo990) .javadoc.JavadocJar.execute (JavadocJar.java:181) w org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) w org.apache.maven.lifecycle.internal.MojoExecja : 209) w org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) w org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) w org.apache. maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) w org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) w org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) w org.apache.maven.lifecycle.internal.LifecycleStarter.execute (Lifecycle16arter.ja) w org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) w org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156) w org.apache.maven.cli.MavenCli.execute (MavenCli.java : 537) w org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) w org.apache.maven.cli.MavenCli.main (MavenCli.java:141) w sun.reflect.NativeMethodAccessorImpl.invoke0 ( Metoda rodzima) w sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) w sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) w java.lang.reflect.Method.wywołaj (Method.java:491) w org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) w org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230) w org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) w org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352)
Jakieś obejście dotyczące sposobu budowania źródeł, instalowania projektu i generowania pliku JAR Javadoc w jednym kroku podczas pracy z Javą 7?