对于我们使用的不同的 3rd 方 jar,我们有不同的 Javadoc 文件。我们必须将所有这些组合成一个 Javadoc 文件,以便与我们的产品一起分发。
有可能这样做吗?有没有可用的工具?
至少有什么工具可以让我输入与一个 jar 相关的 .class 文件和该 jar 的 javadoc,它还会生成带有文档的 .java(源代码)文件,这样我就可以组合这些源并为所有文件生成 javadoc单次拍摄图书馆?
任何指针都会对我有很大帮助。
我也想做同样的事情,这个问题鼓励我走得更远。
我找到了一个适合我的解决方案:
反编译所有类文件以获得可编译的源文件。有几个可用的反编译器(参见这个问题)。我首先尝试了 Java Decompiler,但它产生了太多的语法错误。然后我在 Procyon 中做到了,它只在猜测的参数名称中产生了 2 个错误(大约 5000 个类):
java -jar procyon-decompiler-0.5.26.jar -o src [jarfile.jar]
为那些反编译的类生成 javadoc:
javadoc -sourcepath src -d javadoc -subpackages com
这实质上会产生垃圾文档,因为您的源文件中没有 javadoc。但是索引文件是正确的!
将包 javadoc 文件夹替换为可用 javadoc 中的相应文件夹。对我来说,这意味着com
文件夹。
我认为最好的办法是下载所有三个库的源代码,将所有源代码放入一个 IDE 项目(NetBeans、Eclipse ...)中,然后从那里生成文档。反编译 .class 文件,然后将它们与 java 文档结合起来似乎是个坏主意。由于 javadocs 是从源代码生成的,因此结合所有三个项目应该是最简单的。也就是说,这可能是一项相当大的工作。
另一种选择是从两个库中取出相关位(文件夹)并将它们复制到第三个库的根目录中(首先解压缩 javadocs jar)。例如 Java 6 SE 这些文件夹将是java
,javax
和org
. 这些包含实际的文档文件,其余的只是链接和框架以及其他 html 管道。从那里您可以创建一个脚本,通过其他两个库的类层次结构并将它们添加到第三个库的 html 管道中。不过,这将比仅从合并的源重新生成文档要多得多。
您可以通过将它们全部解压缩到同一目录并再次打包它们来组合它们。
您可以获得将 .class 转换为 .java 文件的反编译器,但我不知道任何可以结合 javadocs 的反编译器。如果它对您很重要,您可能必须手动执行此操作。
我会认为未经第三方图书馆许可分发源代码是一个坏主意。