当前位置: 首页 > 知识库问答 >
问题:

Java11/12 Javadoc和maven导致不生成用于测试的Javadoc

钱选
2023-03-14
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

[信息]生成“Javadoc”报告--maven-javadoc-plugin:3.1.0:aggregate-no-fork[ERROR]错误提取链接:d:\work\eclipse\java\fritzbox\phplib\target\javadoc-bundle-options。忽略了。

[ERROR]提取链接时出错:d:\work\eclipse\java\fritzbox\phplib\target\javadoc-bundle-options。忽略了。

正在加载包de.ps.pl.te.test的源文件...

1个错误

请参阅“[...]”中生成的Javadoc文件迪尔。

MavenReportException:

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

在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)

[...]

我研究了以下问题:

  • Maven,javadoc:包没有源文件

但我的问题似乎是不同的,而且是基于java模块化的。所以问题是如何修复它--或者更多的是做一个bug报告?

编辑%1

现在,我尝试了JDK 11.0.3和JDK 12.0.1--由于oracle证书和服务器问题,我无法下载OpenJDK--所以我无法测试OpenJDK13的早期访问。

对于JDK12,错误为:

退出代码:1-错误:找不到模块:DE.POWERSTAT.PHPLIB.TemplateEngine

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

<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生成的?)文件:

  • argfile
  • 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'
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.]

编辑3:

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

共有1个答案

向实
2023-03-14

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

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

 类似资料:
  • 我们使用openapi生成器maven-plugin版本5.0.1来生成我们的API。我试图指定一个请求,包括一个DTO和一个文件。 第一个奇怪的事情是生成的代码不使用DTO,它基本上是扁平化字段,这样API就期望指定每个字段。然而,我们并不太关心这个问题,因为我们可以指定每个字段(尽管如果它像预期的那样工作会很好)。 杀死我们的问题是为应用编程接口和应用编程接口委托生成的类彼此不一致。生成的AP

  • 我有一个关于智力的Java项目,本学期有多个练习要做。一些测试与这些练习有关。但是,由于生成失败,我无法运行测试,因为某些方法尚未在其他文件中实现。 例如,我有一个StackWithTwoQueues。我实现并关联的java文件,我有StackWithTwoQueuesTest。java文件。当我运行这个文件时,我得到“build failed”,因为文件MinMaxHeap中的一些方法。java

  • 我在我的应用程序中使用Stripe。我想编写一个支付联调,检查Stripe是否已创建付款。我正在使用Stripe.js. 在我的测试中,我需要一个卡令牌来执行测试费用。通常,此令牌将在客户端生成条带.js并在请求中发送以执行收费。由于这是仅服务器端测试,是否有某种方法可以从测试中生成令牌? 作为参考,测试内容如下(使用php,但原理相同): 本质上,我在问Stripe API中是否有允许服务器端令

  • 我想以编程方式从一组动态的URL和表单数据生成基本的Jmetm测试计划(不使用Jmetm GUI手动)。我可以使用Jmetm API来做到这一点吗? 它已经在某个地方解释过了吗? 我只需要点开始。 当然,我可以对测试计划XML格式进行逆向工程,然后编写我自己的自定义测试计划生成器,但这很容易出错,每当格式发生变化时,我的生成器都需要更新。

  • 我有一个java应用程序的Maven项目。我使用的软件版本如下:Maven 3.6.3,Java 1.8.0_241。 我在这个Maven项目中有一些junit测试,我正试图使用Maven“mvn”命令运行这些测试。当我在我的Maven项目上运行命令“mvn clean test”以运行单元测试时,我得到了下面提到的构建失败。 我在网上看了很多关于上面提到的问题,但是已经好几天没有解决这个问题了。

  • 问题内容: 我想知道是否有明确的理由选择在APIViz上选择UmlGraph以便在Maven2构建中生成javadocUML图。彼此之间是否有任何集成或功能,它们看起来很相似? 问题答案: 有一个有趣的线程在这里约UMLGraph VS apiviz(这是提到在这个问题上也是如此),我的理解是这样的: UMLGraph较旧,但确实很棒(dixit Fowler比我重得多)。 apiviz是对UML