java - 如何为多个模块生成javadoc

标签 java javadoc java-module module-path

我正在尝试为单个文档中的多个模块创建 javadoc (jdk11)。

我试过这样做。

文件/目录结构为:

workspace
    doc
    maths
        src
            main
                java
                    net.virtualpsyclab.maths
                        net
                            virtualpsyclab
                                maths
                                    lib
                                        *.java
                    module-info.java
    genutils
        src
            main
                java
                    net.virtualpsyclab.genutilsm
                        net
                            virtualpsyclab
                                genutilsm
                                    *.java
                    module-info.java
module-info.java
jdocOptions.txt
files.lst

jdocOptions.txt 包含:

-d doc
--module-source-path .;genutils\src\main\java\net.virtualpsyclab.genutilsm;maths\src\main\java\net.virtualpsyclab.maths
--module workspace,net.virtualpsyclab.genutilsm,net.virtualpsyclab.maths
-verbose
-overview overview.html

files.lst 列出了所有 *.java 文件。

三个 module-info.java 文件包含:

workspace\module-info.java
module workspace{
    requires net.virtualpsyclab.genutilsm;
    requires net.virtualpsyclab.maths;
}

workspace\genutils\src\main\java\net.virtualpsyclab.genutilsm\module-info.java
module net.virtualpsyclab.genutilsm{
    exports net.virtualpsyclab.genutilsm;
}

workspace\maths\src\main\java\net.virtualpsyclab.maths\module-info.java
module net.virtualpsyclab.maths{
    exports net.virtualpsyclab.maths.lib;
}

我希望模块 net.virtualpsyclab.genutilsm 和 net.virtualpsyclab.maths 的文档出现在目录 workspace\doc 中,然后我运行命令:

javadoc @jdocOptions.txt @files.lst 

从目录 workspace 中,我看到所有源文件显然都在处理中,例如:

Loading source file c:\Users\Admin\workspace\maths\src\main\java\net.virtualpsyclab.maths\net\virtualpsyclab\maths\lib\NDieDistribution.java...
[parsing started SimpleFileObject[C:\Users\Admin\workspace\maths\src\main\java\net.virtualpsyclab.maths\net\virtualpsyclab\maths\lib\NDieDistribution.java]]
[parsing completed 0ms]

但随后一切都以“javadoc: error - module workspace not found.”结束。

非常感谢任何有关我在这里出错的帮助。

最佳答案

基于此 question 中的信息和 here我现在已经弄清楚如何做到这一点。这些链接解释了各种 Java 工具的多模块操作模式。包含选项 --module-source-path 会触发多模块模式。模块源路径的元素是包含模块定义的目录。模块定义可以是模块名对应的包含module-info.java的目录和包、源文件对应的目录结构。有了这个,我放弃了聚合器模块的想法(从我的工作区目录中删除 module-info.java,上面)并将 jdocOptions.txt 文件更改为如下所示:

-d doc
--module-source-path genutils\src\main\java\;maths\src\main\java\

关键的变化是删除在单模块模式下用于识别根模块的 --module 选项,并缩短 --module-source-path 选项中的路径,以便模块目录,例如。 net.virtualpsyclab.maths 是路径的子目录而不是路径的一部分。

现在我在 workspace/doc 中有了我的两个模块所需的文档!

关于java - 如何为多个模块生成javadoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53973319/

相关文章:

java - JAR 文件从另一个目录运行?

java - 消灭敌人的有效方法

java - 资源文件在构建Java 9模块的Gradle项目中位于何处?

java - 列出应用程序启动期间解析的模块

java - 使用新的 Java 模块系统加载服务提供程序时我还缺少什么?

java - IntelliJ 自动构建有错误,但编辑器中没有错误

java - 如何随机将文本设置为 SQLite 数据库中的四个按钮?

Java异常类图?

java - 将 UML 嵌入 Java 代码的最常用方法是什么?

java - 记录代码库中 EJB3 注释的使用情况