gpt4 book ai didi

带有 Maven 的 Java 11/12 Javadoc 导致不为测试生成 Javadoc

转载 作者:搜寻专家 更新时间:2023-10-30 21:34:39 31 4
gpt4 key购买 nike

我有一个具有以下结构的小项目:

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 pom 中,我定义了 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

[INFO] Generating "Javadoc" report --- maven-javadoc-plugin:3.1.0:aggregate-no-fork[ERROR] Error fetching link: D:\work\eclipse\java\FritzBox\phplib\target\javadoc-bundle-options. Ignored it.

[...]

[INFO] Generating "Test Javadoc" report --- maven-javadoc-plugin:3.1.0:test-aggregate-no-fork

[ERROR] Error fetching link: D:\work\eclipse\java\FritzBox\phplib\target\javadoc-bundle-options. Ignored it.

Loading source files for package de.ps.pl.te.test...

1 error

[ERROR] Error while creating javadoc report:

Exit code: 2 - javadoc: error - No source files for package de.powerstat.phplib.templateengine.test

Command line was: [...]javadoc.exe @options @packages

Refer to the generated Javadoc files in '[...]' dir.

org.apache.maven.reporting.MavenReportException:

Exit code: 2 - javadoc: error - No source files for package de.ps.pl.te.test

Command line was: [...]javadoc.exe @options @packages

Refer to the generated Javadoc files in '[...]\target\site\testapidocs' dir.

at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5761)

at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMojo.java:2148)

at 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,错误是:

Exit code: 1 - Project\src\main\java\module-info.java:12: error: module not found: org.apache.logging.log4jrequires org.apache.logging.log4j;

对于 JDK 12,错误是:

Exit code: 1 - error: module not found: de.powerstat.phplib.templateengine

消息的其余部分仍然相同。

我还发现了一个可能涉及这里的错误报告:

Javadoc does not support module-info in a multi-release jar

我也尝试排除 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

在 target\site\apidocs 中我可以找到以下(maven 生成的?)文件:

  • 参数文件
  • javadoc.bat
  • 选项
  • 套餐

参数文件:

'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 上提供了整个项目。

编辑 3:

更新到 Java 11.0.10 或其他更新版本后,上面提到的一些问题已经消失。但仍然存在一个问题 - 我已将其报告为 bug .

最佳答案

在测试时我看到了这个错误

[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 中发现了一个错误 :)

关于带有 Maven 的 Java 11/12 Javadoc 导致不为测试生成 Javadoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55676341/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com