首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 11/12使用maven的Javadoc导致无法生成用于测试的Javadocs

Java 11/12使用maven的Javadoc导致无法生成用于测试的Javadocs
EN

Stack Overflow用户
提问于 2019-04-14 14:24:53
回答 2查看 8K关注 0票数 16

我有一个小项目,其结构如下:

代码语言:javascript
复制
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插件定义为:

代码语言:javascript
复制
      <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>

现在我在运行过程中得到了一些奇怪的输出

代码语言:javascript
复制
mvn clean install site

生成"Javadoc“报告的信息-maven-javadoc-plugin:3.1.0:聚合-无叉错误获取链接: D:\work\eclipse\java\FritzBox\phplib\target\javadoc-bundle-options.忽略了它。 ..。生成“测试Javadoc”报告- maven-javadoc-plugin:3.1.0:test-aggregate-no-fork 错误获取链接: D:\work\eclipse\java\FritzBox\phplib\target\javadoc-bundle-options.忽略了它。 加载包de.ps.pl.te.test的源文件..。 1个错误 创建javadoc报告时出错: 退出代码:2-javadoc: error -没有包de.powerstat.phplib.templateengine.test的源文件 命令行是:...javadoc.exe @options @packages 请参阅“.”中生成的Javadoc文件。迪尔。 org.apache.maven.reporting.MavenReportException: 退出代码:2-javadoc: error -没有包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

现在,我尝试使用JDK11.0.3和JDK12.0.1-由于oracle证书和服务器问题,我无法下载OpenJDK,因此无法测试OpenJDK 13的早期访问。

有趣的是,在使用11/12版本时,错误消息略有不同。

对于JDK 11,错误是:

退出代码:1-Project\src\main\java\ not info.java:12:错误:模块未找到: org.apache.logging.log4j需要org.apache.logging.log4j;

对于JDK 12,错误是:

退出代码:1-错误:模块未找到: de.powerstat.phplib.templateengine

其余的信息仍然是一样的。

此外,我还在这里找到了一个可能涉及到的bug报告:

Javadoc不支持多版本jar中的模块信息。

此外,我试图排除模块info.java,但没有成功:

代码语言:javascript
复制
<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?)档案:

  • 阿格文件
  • javadoc.bat
  • 选项
  • 套餐

argfile:

代码语言:javascript
复制
'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:

代码语言:javascript
复制
D:\Programme\Java\jdk-11.0.3\bin\javadoc.exe @options @argfile

套餐:

代码语言:javascript
复制
de.powerstat.phplib.templateengine
de.powerstat.phplib.templateengine

选项:

代码语言:javascript
复制
--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:

上面提到的一些问题随着更新到Java11.0.10或其他更新版本而消失了。但仍然有一个问题是存在的--我已经把它作为一个错误报告了。

EN

回答 2

Stack Overflow用户

发布于 2019-06-30 10:39:05

在测试过程中,我看到了这个错误

代码语言:javascript
复制
[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“,它就消失了。这就产生了这个问题

代码语言:javascript
复制
<show>private</show>

所以我们可以说,您在maven-javadoc-plugin中发现了一个bug :)

票数 1
EN

Stack Overflow用户

发布于 2020-09-16 15:28:32

我最近也遇到了同样的错误。看上去是因为我的回购中的maven-阴影插件。我使用了一个旧版本的1.6,并将其升级到3.2.4,这个错误就消失了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55676341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档