Так как я использую 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>
Затем проект устанавливается в моем локальном хранилище. Тем не менее, Javadoc JAR по-прежнему не генерируется.
Фрагмент вывода, который я вижу в консоли с этой новой конфигурацией:
[ОШИБКА] MavenReportException: ошибка при создании архива: код выхода: 1 - /Users/....java:18: предупреждение: нет @param ... Командная строка была: / Library / Java / Home / bin / javadoc @options @packages
Обратитесь к сгенерированным файлам Javadoc в директории '/ Users / sergioc / Documents / workspaces / heal / minitoolbox / target / apidocs'.
в org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043) в org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeReport: jojojjjjj0) .javadoc.JavadocJar.execute (JavadocJar.java:181) в org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) в org.apache.maven.lifejo.jec.java : 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.java). в 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 ( Собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lanfre.вызвать (Method.java:491) в 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)
Любой обходной путь о том, как собрать источники, установить проект и сгенерировать Javadoc JAR за один шаг, как это работало с Java 7?