web-dev-qa-db-ja.com

Java 11/12 MAVENとJavadocがテスト用にJavadocを生成しないことになる

次のような構造で小さなプロジェクトがあります。

_pom.xml

src/main/Java/
  module-info.Java
  de.ps.pl.te/
    package-info.Java
    TE.Java

src/test/Java/
   de.ps.pl.te.test/
     package-info.Java
     TETests.Java
_

また、私のMavenの中には、Javadocプラグインを次のように定義しました。

_      <plugin>
        <groupId>org.Apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          <show>protected</show>
          <failOnError>false</failOnError>
        </configuration>
      </plugin>
_

今、私は実行中にいくつかの奇妙な出力を得ました

_mvn clean install site
_

[情報] "javadoc"レポートの生成--- maven-javadoc-plugin:3.1.0:Aggregate-no-fork [エラー]リンクのフェッチ:D:\ work\eclipse\java\fritzbox\phplib\javadoc-バンドルオプション無視した。

[...]

[情報] "Test Javadoc"レポートの生成--- maven-javadoc-plugin:3.1.0:test-gragegate-no-fork

[エラー]リンクのフェッチエラー:D:\ work\eclipse\java\fritzbox\phplib\target\javadoc-bundle - オプション。無視した。

Package DE.PS.PL.TET.TESTのソースファイルのロード...

1エラー

[エラー] Javadocレポートの作成中にエラー:

終了コード:2 - javadoc:エラー - パッケージde.powerstat.phplib.templateengine.testのソースファイルなし

コマンドラインは:[...] javadoc.exe @Options @packages

'[...]'のDIRの生成されたJavaDocファイルを参照してください。

org.apache.maven.reporting.MavenReportException:

終了コード:2 - javadoc:エラー - パッケージde.ps.pl.te.testのソースファイルなし

コマンドラインは:[...] javadoc.exe @Options @packages

'[...]\target\site\testapidocs' dirの "生成されたjavadocファイルを参照してください。

org.apache.maven.plugins.javadoc.abstractjavadocmojo.executejavadoccommandline(abstractjavadocmojo.java:5761)

org.apache.maven.plugins.javadoc.abstractjavadocmojo.executereport(abstractjavadocmojo.java:2148)

org.apache.maven.plugins.javadoc.testjavadocreport.executereport(testjavadocreport.java:162)

[...]

次の質問を検討しました。

しかし、私の問題は異なるようです、そしてJavaモジュール化に基づいています。そのため、この質問はその修復方法です - またはバグレポートを作成するのにもっと多くありますか?

編集1

今、JDK 11.0.3とJDK 12.0.1で試してみました - Oracleの証明書とサーバーの問題のため、OpenJDKをダウンロードできませんでした。そのため、OpenJDK 13早期アクセスをテストできませんでした。

興味深いポイントは、バージョン11/12を使用しているときにエラーメッセージが減少することです。

JDK 11では、エラーは次のとおりです。

終了コード:1 - Project\SRC\Main\Java\Module-Info.java:12:error:moduleが見つかりません:org.apache.logging.log4jにはorg.apache.logging.log4jが必要です。

JDK 12では、エラーは次のとおりです。

終了コード:1 - エラー:モジュールが見つかりません:de.powerstat.phplib.templateEngine

メッセージの残りの部分はまだ同じです。

また、ここに関与している可能性があるバグレポートを見つけました。

Javadocはマルチリリースジャーのモジュール情報をサポートしません

また、Module-Info.javaを成功せずに除外しようとしました。

_<plugin>
  <groupId>org.Apache.maven.plugins</groupId>
  <artifactId>maven-javadoc-plugin</artifactId>
  <version>3.1.0</version>
  <configuration>
    <show>protected</show>
    <failOnError>false</failOnError>
    <sourceFileExcludes>
      <sourceFileExclude>**/module-info.Java</sourceFileExclude>
    </sourceFileExcludes>
  </configuration>
</plugin>
_

編集2

ターゲット\ site\apidocs内で、私は次の(Mavenが生成された?)ファイルを見つけることができます。

  • argfile.
  • javadoc.bat.
  • オプション
  • パッケージ

argfile:

_'D:/TemplateEngine/src/main/Java/de/ps/pl/te/package-info.Java'
'D:/TemplateEngine/src/main/Java/de/ps/pl/te/TemplateEngine.Java'
_

javadoc.bat:

_D:\Programme\Java\jdk-11.0.3\bin\javadoc.exe @options @argfile
_

パッケージ:

_de.powerstat.phplib.templateengine
de.powerstat.phplib.templateengine
_

オプション:

_--module-path
'C:/.m2/repository/org/Apache/logging/log4j/log4j-api/2.11.2/log4j-api-2.11.2.jar;C:/.m2/repository/org/Apache/logging/log4j/log4j-core/2.11.2/log4j-core-2.11.2.jar'
-sourcepath
'D:/TemplateEngine/src/main/Java'
-d
'D:/TemplateEngine/target/site/apidocs'
-linkoffline
'https://docs.Oracle.com/en/Java/javase/11/docs/api' 'D:/TemplateEngine/target/javadoc-bundle-options'
[Removed uninteresting parts like encoding, title etc.]
_

誰かがそれを試してみたいと思う場合、私は今プロジェクト全体を利用可能にしました github

14
PowerStat

テストしている間、私はこのエラーを見ました

[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-site-plugin:3.7.1:site (default-site) on project templateengine: Execution default-site of goal org.Apache.maven.plugins:maven-site-plugin:3.7.1:site failed: could not find reports directory [C:\tmp\TemplateEngine\target\pit-reports]
[ERROR]
[ERROR] Please copy and paste the information and the complete stacktrace below when reporting an issue
[ERROR] VM : OpenJDK 64-Bit Server VM
[ERROR] Vendor : Oracle Corporation
[ERROR] Version : 12.0.1+12
[ERROR] Uptime : 146619
[ERROR] Input ->
[ERROR]  1 : -Dclassworlds.conf=C:/ProgramData/chocolatey/lib/maven/Apache-maven-3.6.1/bin/m2.conf
[ERROR]  2 : -Dmaven.home=C:/ProgramData/chocolatey/lib/maven/Apache-maven-3.6.1
[ERROR]  3 : -Dlibrary.jansi.path=C:/ProgramData/chocolatey/lib/maven/Apache-maven-3.6.1/lib/jansi-native
[ERROR]  4 : -Dmaven.multiModuleProjectDirectory=C:/tmp/TemplateEngine
[ERROR] BootClassPathSupported : false
 _

フォルダ "MKDIR ./target/pit-reports"を作成しました。これは問題を生み出しています

<show>private</show>
 _

だから私たちはmaven-javadoc-pluginのバグを見つけたと言うことができます:)

1
özkan pakdil