Поскольку я использую Maven, мне удалось создать и установить в моих проектах локального репозитория, которые имеют неполные теги Javadoc (например, отсутствующий параметр).
Однако, поскольку я перешел на Java 8 (1.8.0-ea-b90), Maven абсолютно строг в отношении отсутствия тегов документации и показывает мне много ошибок 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.
UPDATE:
Если я изменю конфигурацию плагина Javadoc с помощью <failOnError>false</failOnError>
(спасибо 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>
Затем проект устанавливается в моем локальном репозитории. Однако JAR Javadoc все еще не генерируется.
Фрагмент вывода, который я вижу в консоли с этой новой конфигурацией, следующий:
[ERROR] MavenReportException: ошибка при создании архива: выход код: 1 -/Users/....java:18: warning: no @param... Командная строка был:/Library/Java/Главная/bin/javadoc @options @packages
Обратитесь к сгенерированным файлам Javadoc в '/Users/sergioc/Документы/рабочие/заживают/minitoolbox/цель/apidocs' реж.
в org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine(AbstractJavadocMojo.java:5043) в org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeReport(AbstractJavadocMojo.java:1990) в org.apache.maven.plugin.javadoc.JavadocJar.execute(JavadocJar.java:181) в org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) в org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.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:161) на 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) 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 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) в sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke(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?