【问题标题】:Combining different javadoc zip files into single javadoc zip file将不同的 javadoc zip 文件组合成单个 javadoc zip 文件
【发布时间】:2012-07-17 04:07:18
【问题描述】:

对于我们使用的不同的 3rd 方 jar,我们有不同的 Javadoc 文件。我们必须将所有这些组合成一个 Javadoc 文件,以便与我们的产品一起分发。

有可能做到吗?有没有可用的工具?

至少有什么工具可以让我输入与一个 jar 相关的 .class 文件和该 jar 的 javadoc,它还会生成带有文档的 .java(源代码)文件,以便我可以组合这些源并生成一次性使用所有 teh 库的 javadoc?

任何指针都会对我有很大帮助。

【问题讨论】:

  • 如果您已经有了 Javadocs 和库的 jar,为什么还需要生成源代码?另外,如果您需要源代码,为什么不下载它们呢?
  • 我的最终目标是生成包含所有第三方库 api 合并的单个 javadoc.zip 文件。我认为至少我可以进行逆向工程以使用 cmets 为所有这些创建代码并一次性生成 javadoc。
  • 各个 javadoc 档案之间的包是否重叠?
  • @Thorbjørn Ravn Andersen:你能详细说明一下吗
  • @Thorbjørn Ravn Andersen 不,我认为问题在于一般的 HTML 文件(框架、链接树等)重叠,因为它们对于每个 docs 包总是具有相同的名称。

标签: java javadoc


【解决方案1】:

我也想这样做,这个问题鼓励我走得更远。

我找到了适合我的解决方案:

  1. 反编译您的所有类文件以获得可编译源文件。有几个可用的反编译器(请参阅this question)。我首先尝试了 Java Decompiler,但它产生了太多的语法错误。然后我在 Procyon 中做了,在猜测的参数名称中只产生了 2 个错误(大约 5000 个类):

    java -jar procyon-decompiler-0.5.26.jar -o src [jarfile.jar]
    
  2. 为那些反编译的类生成javadoc:

    javadoc -sourcepath src -d javadoc -subpackages com
    

    这实际上会产生垃圾文档,因为您的源文件中没有 javadoc。但是索引文件是正确的!

  3. 将包 javadoc 文件夹替换为可用 javadoc 中的相应文件夹。对我来说,这意味着 com 文件夹。

【讨论】:

    【解决方案2】:

    您可以通过将它们全部解压到同一个目录并再次打包它们来组合它们。

    您可以获得将 .class 转换为 .java 文件的反编译器,但我不知道有哪些可以结合 javadocs。如果对您很重要,您可能必须手动执行此操作。

    我会认为未经第三方库的许可分发源代码是一个坏主意

    【讨论】:

    • 如果你将它们全部解压到一个目录,那么有很多文件,如 index.html、overview-summary.html 等会相互覆盖。我正在寻找反编译器(使用 javadoc cmets)的原因不是分发第 3 方库源,但至少这样我可以合并生成的源并为整个源创建单个 javadoc。
    • 我明白你在说什么。我不知道如何自动执行此操作。
    【解决方案3】:

    我认为最好的办法是下载所有三个库的源代码,将所有源代码放入一个 IDE 项目(NetBeans、Eclipse ...),然后从那里生成文档。反编译 .class 文件,然后将它们与 java 文档结合起来似乎是个坏主意。由于 javadocs 是从源代码生成的,因此结合所有三个项目应该是最简单的。也就是说,这可能是一项相当大的工作。

    另一种选择是从两个库中取出相关位(文件夹)并将它们复制到第三个库的根目录中(首先解压缩 javadocs jar)。例如,在 Java 6 SE 中,这些文件夹将是 javajavaxorg。这些包含实际的文档文件,其余的只是链接和框架以及其他 html 管道。从那里您可以创建一个脚本,通过其他两个库的类层次结构并将它们添加到第三个库的 html 管道中。不过,这将比仅从合并的源重新生成文档要多得多。

    【讨论】:

    • 唯一的问题是我没有这些库的资源。
    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多