Оскільки я використовую Maven, мені вдалося створити та встановити в своїх проектах локального сховища, які мають неповні теги Javadoc (наприклад, відсутній параметр).
Однак, оскільки я перейшов на Java 8 (1.8.0-ea-b90), Maven абсолютно суворо ставиться до відсутніх тегів документації та показує мені безліч помилок Javadoc, пов'язаних з проблемами Javadoc, коли я намагаюся створити або встановити проект, де Javadoc не є "досконалий". Деякі проекти, які я намагаюся скласти та встановити у своєму локальному сховищі, є сторонніми проектами, над якими я не маю контролю. Тож вирішення проблеми просто виправити всі Javadocs у всіх цих проектах не видається можливим для мого сценарію.
Це невелика частина результатів, які я бачу під час виконання mvn clean package install
проекту:
[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] ^
Плагін Javadoc Maven налаштований так у моїй 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>
Як я вже говорив раніше, все працює нормально, якщо я повернусь до Java 7. Можливо, це помилка, пов’язана з Maven, що працює в Java 8? Як я можу змусити його працювати (тобто вміти будувати Javadoc проекту та встановлювати його код у моєму локальному сховищі) з Java 8? Я тестував і Maven 3.0.3, і 3.0.5 в OSX.
ОНОВЛЕННЯ:
Якщо я зміню конфігурацію плагіну Javadoc <failOnError>false</failOnError>
(спасибі Мартін):
<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>
Потім проект встановлюється в моєму локальному сховищі. Однак JAR Javadoc все ще не генерується.
Фрагмент виводу, який я бачу в консолі з цією новою конфігурацією:
[ПОМИЛКА] MavenReportException: Помилка під час створення архіву: Код виходу: 1 - /Users/....java:18: попередження: немає @param ... Командний рядок був: / Бібліотека / Java / Головна / bin / javadoc @options @packages
Зверніться до створених файлів Javadoc у розділі '/ Users / sergioc / Документи / робочі простори / heal / minitoolbox / target / apidocs' dir.
на org.apache.maven.plugin.javadoc.AbriefJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043) at org.apache.maven.plugin.javadoc.AbriefJavadocMojo.executeReportMajova.oven.avachea990.pdf (AJJavache) .javadoc.JavadocJar.execute (JavadocJar.java:181) на org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) на org.apache.maven.lifecycle.internal.MojoEeccutor (MojoEeccutor) : 209) на org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) на org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) на org.apache. maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) на org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) на org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) на org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.execute (LifecycleStarter.61) на org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) на org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156) на org.apache.maven.cli.MavenCli.execute (MavenCli.java : 537) на org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) на org.apache.maven.cli.MavenCli.main (MavenCli.java:141) у sun.reflect.NativeMethodAccessorImpl.invoke0 ( Native Method) у sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) у sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) на java.lang.reflect.Method.викликати (Method.java:291) на org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) на org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230) на org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) на org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352)
Будь-яке рішення щодо того, як створити джерела, встановити проект та генерувати JAR Javadoc за один крок, як це працювало з Java 7?