私はmaven-javadoc-pluginとJDK8のMavenプロジェクトを持っています。 mvn javadoc:test-javadoc
を実行すると、プラグインはドキュメントのエラーと停止を報告しますが、mvn javadoc:test-javadoc-no-fork
を実行するとプラグインは正常に実行され、警告が表示されます。maven-javadoc-pluginの目標test-javadocがエラーで失敗するのはなぜですか?test-javadoc-no-forkは警告を受け取るだけです
質問はNOT修正方法またはドキュメントエラーです。このプラグインでは、修正が必要な実際のドキュメントの問題が検出されたため、報告されたエラーmvn javadoc:test-javadoc
が正しい結果になります。
質問:なぜmvn javadoc:test-javadoc-no-fork
は失敗しないのですが、警告と同じように問題を処理するのはなぜですか?
背景:
- プロジェクトは
- マルチモジュールプロジェクトでMavenのバージョン:3.3.9
- 達人-のJavadoc - プラグイン:2.9.4(同じ動作)3.0.0-M1で発生
- Java8
mvn javadoc:test-javadoc-no-fork
mvn javadoc:test-javadoc
[INFO]
[INFO] <<< maven-javadoc-plugin:2.10.4:test-javadoc (default-cli) < generate-test-sources @ agrovet-server <<<
[INFO]
[INFO] --- maven-javadoc-plugin:2.10.4:test-javadoc (default-cli) @ agrovet-server ---
[INFO]
...
3 errors
9 warnings
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] PROJECT ............................................ SUCCESS [ 1.131 s]
[INFO] PROJECT :: Client .................................. SUCCESS [ 43.908 s]
[INFO] PROJECT :: Server .................................. FAILURE [ 44.774 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:36 min
[INFO] Finished at: 2017-09-23T21:33:33+02:00
[INFO] Final Memory: 96M/1573M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:test-javadoc (default-cli) on project PROJECT-server: An error has occurred in Test JavaDocs report generation:
[ERROR] Exit code: 1 - F:\workspaces\PROJECT\PROJECT-server\src\test\java\com\example\PROJECT\infrastructure\TracingServiceSpringTest.java:389: warning:
no @throws for javax.xml.datatype.DatatypeConfigurationException
[ERROR] public void testImport() throws DatatypeConfigurationException {
[ERROR]^
...
[ERROR]
[ERROR] Command line was: "C:\Program Files\Java\jdk1.8.0_121\jre\..\bin\javadoc.exe" @options @packages
[ERROR]
[ERROR] Refer to the generated Javadoc files in 'F:\workspaces\PROJECT\PROJECT-server\target\site\testapidocs' dir.
[ERROR] -> [Help 1]
[ERROR]
...
出力を実行するときにTracingServiceSpringTest
で遊ばし問題は本当にスローDatatypeConfigurationException
/** scenario: some text... **/
@Test
public void testImport() throws DatatypeConfigurationException {...
出力のために不足しているドキュメントを持っています
8 warnings
[WARNING] Javadoc Warnings
[WARNING] F:\workspaces\PROJECT\PROJECT-server\src\test\java\com\example\PROJECT\infrastructure\TracingServiceSpringTest:389: warning: no @throws for javax.xml.datatype.DatatypeConfigurationException
[WARNING] public void testImport() throws DatatypeConfigurationException {
[WARNING]^
...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] PROJECT ............................................ SUCCESS [ 0.454 s]
[INFO] PROJECT :: Client .................................. SUCCESS [ 0.011 s]
[INFO] PROJECT :: Server .................................. SUCCESS [ 6.763 [INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
...
関連POM部品、親pom.xml
(完全なポンポンはあまりにも巨大であるが、これはmaven-javadoc-plugin
に言及一部でしかありません:
<dependencyManagement>
<dependencies>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
</plugin>
</dependencies>
</dependencyManagement>
...
<reporting>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<!--
javadoc-no-fork in order to prevent JavaDoc process from runing generate-source again
but this also requries that JavaDoc generation runs after compile: "mvn install site"
but not on a black project "mvn clean site"
-->
<report>javadoc-no-fork</report>
<report>test-javadoc-no-fork</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
しかし、この問題はコンパイラの問題ではありません。問題は、スローされた例外のjavadocが欠落していることです。 - そして、javadocツールは 'test-javadoc-no-fork'を実行して(警告を生成する)問題を認識しても、ビルドを止めません。 – Ralph
@Ralphおそらく私はあなたが最初は間違っています。私のテストとメインでそれぞれを1つのクラスで再現しようとすると、私は両方のコマンドの失敗を得ることができませんでした。また、 'test-javadoc'をレポートの1つとして組み込み、それが役立つかどうか確認することもできます。 – nullpointer