如何为多个模块生成javadoc
how to generate javadoc for multiple modules
我正在尝试为单个文档中的多个模块创建 javadoc (jdk11)。
我试过这样做。
file/directory结构是:
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 文件。
三个模块-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
从目录工作空间中,我看到所有源文件显然都在处理中,例如:
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."
结束
非常感谢任何关于我在这里出错的帮助。
根据此 and here 中的信息,我现在已经了解了如何执行此操作。这些链接解释了各种 java 工具的多模块操作模式。包含选项 --module-source-path 会触发多模块模式。模块源路径的元素是包含模块定义的目录。模块定义可以是模块名对应的包含module-info.java的目录和包、源文件对应的目录结构。有了这个,我放弃了聚合器模块的想法(从我的工作区目录中删除模块-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 中有了我的两个模块所需的文档!
我正在尝试为单个文档中的多个模块创建 javadoc (jdk11)。
我试过这样做。
file/directory结构是:
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 文件。
三个模块-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
从目录工作空间中,我看到所有源文件显然都在处理中,例如:
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."
结束非常感谢任何关于我在这里出错的帮助。
根据此
-d doc
--module-source-path genutils\src\main\java\;maths\src\main\java\
关键的变化是删除在单模块模式下用于识别根模块的 --module 选项,并缩短 --module-source-path 选项中的路径,以便模块目录,例如。 net.virtualpsyclab.maths 是路径的子目录而不是路径的一部分。
现在我在 workspace/doc 中有了我的两个模块所需的文档!