私は Maven を使用しているので、不完全な Javadoc タグ (パラメーターの欠落など) を持つローカル リポジトリ プロジェクトをビルドしてインストールすることができました。
ただし、Java 8 (1.8.0-ea-b90) に移行して以来、Maven はドキュメント タグの欠落について完全に厳格であり、Javadoc が存在しないプロジェクトをビルドまたはインストールしようとすると、Javadoc の問題に関連する多くの Javadoc エラーが表示されます。 "完全"。コンパイルしてローカル リポジトリにインストールしようとしているプロジェクトの一部は、私が制御できないサード パーティのプロジェクトです。したがって、これらすべてのプロジェクトですべての Javadoc を修正するだけの回避策は、私のシナリオでは実行可能ではないようです。
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 に戻せばすべて正常に動作します。これは、Java 8 で実行されている Maven に関連するバグでしょうか? Java 8 でそれを機能させるにはどうすればよいでしょうか (つまり、プロジェクトの Javadoc をビルドし、そのコードをローカル リポジトリにインストールすることができます)。OSX で Maven 3.0.3 と 3.0.5 の両方をテストしました。
アップデート:
Javadoc プラグインの設定を次のように変更すると<failOnError>false</failOnError>
(thanks 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>
次に、プロジェクトがローカル リポジトリにインストールされます。ただし、Javadoc JAR はまだ生成されていません。
この新しい構成でコンソールに表示される出力の一部は次のとおりです。
[エラー] MavenReportException: アーカイブの作成中にエラーが発生しました: 終了コード: 1 - /Users/....java:18: 警告: @param がありません ... コマンド ライン: /Library/Java/Home/bin/javadoc @options @パッケージ
「/Users/sergioc/Documents/workspaces/heal/minitoolbox/target/apidocs」ディレクトリで生成された Javadoc ファイルを参照してください。
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. org.apache.maven.lifecycle.internal.LifecycleModuleBuilder の maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)。org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) の buildProject(LifecycleModuleBuilder.java:59) 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) 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 で。org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) の invoke(Method.java:491) 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 を 1 つのステップで生成する方法について、Java 7 で作業していたので、回避策はありますか?