带有Maven的Java 12 Javadoc无法生成Javadocs进行测试

时间:2019-04-14 14:24:53

标签: java maven javadoc java-11 java-12

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

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]生成“ Javadoc”报告--- maven-javadoc-plugin:3.1.0:aggregate-no-fork   [错误]提取链接时出错:D:\ work \ eclipse \ java \ FritzBox \ phplib \ target \ javadoc-bundle-options。忽略它。

     

[...]

     

[INFO]生成“测试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个错误

     

[ERROR]创建javadoc报告时出错:

     

退出代码:2-javadoc:错误-软件包de.powerstat.phplib.templateengine.test没有源文件

     

命令行为:[...] javadoc.exe @options @packages

     

请参考“ [...]”目录中生成的Javadoc文件。

     

org.apache.maven.reporting.MavenReportException:

     

退出代码:2-javadoc:错误-没有软件包de.ps.pl.te.test的源文件

     

命令行为:[...] javadoc.exe @options @packages

     

请参考“ [...] \ target \ site \ testapidocs”目录中的生成的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:错误:找不到模块:org.apache.logging.log4j     需要org.apache.logging.log4j;

使用JDK 12时,错误是:

  

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

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

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

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

我还试图排除模块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 个答案:

答案 0 :(得分:1)

在测试中我看到此错误

[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 :(得分:-1)

我最近遇到了同样的错误。好像是因为我的仓库中有Maven-shade-plugin。我使用的是旧版1.6,并将其升级到3.2.4,此错误消失了。