首页 > 解决方案 > Javadoc 11 - 流氓?

问题描述

我想为testfx包编译 javadoc。

所以我获取了源 jar 并提取(testfx-core-4.0.15-alpha-sources.jar、testfx-junit-4.0.15-alpha-sources.jar)。

我发现所有这些包都以“org.testfx ....”开头,所以把它们放在一起......然后我去:

mike@M17A ~/Desktop/temp $  javadoc -d docs -Xmaxwarns 10  -Xdoclint:none -sourcepath . -subpackages org

它列出了以下类型的 100 个错误:

**  symbol:   class TextFlow
  location: class TextFlowMatchers
./org/testfx/matcher/control/TextFlowMatchers.java:157: error: cannot find symbol
    private static boolean hasText(TextFlow textFlow, String string) {
**

...然后停止。没有生成 Javadoc!这些(显然)是我试图记录的包之外的类。我不想要这些的任何超链接,请把它们写成无链接的。

注意我之前-Xmaxerrs 10在命令行中使用了另一个开关 , 。这只是将错误列表限制为 10 个,但同样不会生成 Javadoc 本身。

这种技术曾经奏效。我刚刚升级(?)到 Java 11。这对 Java 11 来说似乎是新的。有人知道如何克服这种废话吗?

后来,为了回应 Slaw

我非常喜欢拥有所有语言的所有模块和框架等的参考文档的本地副本。我不知道在线 Javadoc 的链接。我可能会使用 HTTrack 复制该特定网站并制作本地副本。

我确实尝试了另一条路线:克隆 git repo 并运行./gradlew aggregateJavadoc. 不幸的是,这失败了:

mike@M17A ~/Desktop/temp2/TestFX $  ./gradlew aggregateJavadoc
> Task :aggregateJavadoc FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':aggregateJavadoc'.
> /home/mike/Desktop/temp2/TestFX/docs/javadoc does not exist

...在您问之前,是的,我尝试在那里创建一个 /javadoc 文件夹,但是该任务将其删除,然后再次抱怨它不存在!

我也尝试了简单的javadoc任务。这也失败了:

mike@M17A ~/Desktop/temp2/TestFX $  ./gradlew javadoc

> Task :testfx-core:compileModuleInfoJava
/home/mike/Desktop/temp2/TestFX/subprojects/testfx-core/src/main/java/module-info.java:37: 
warning: requires transitive directive for an automatic module
    requires transitive org.hamcrest;
                           ^
1 warning

> Task :testfx-core:javadoc FAILED
/home/mike/Desktop/temp2/TestFX/subprojects/testfx-core/src/main/java/module-info.java:36:
error: module not found: org.assertj.core
    requires static org.assertj.core;
                               ^
1 error

解决方法

幸运的是,我设法获得了对 Java 8 安装的支持,它仍然在我的系统上,就我而言:/usr/lib/jvm/java-8-openjdk-amd64/javadoc。显然我会设置一个符号链接。使用 Java 8 的额外好处:我个人更喜欢 Javadocs 的“框架”版本,即左侧框架中列出的包和类。

结论

是什么导致 Java 背后的聪明人(不是讽刺)修改了这样的东西?我已经非常仔细地查看了 javadoc v. 11 的可用开关和选项。没有什么能让你制作一个简单的,呃,Javadoc,我天真地认为这是 javadoc 实用程序的目的。

标签: javajavadocjava-11

解决方案


推荐阅读