混淆后如何保持javadoc可见

How to keep javadoc visible after obfuscating

我为我的项目构建了一个很好的 Javadoc 文档,它是一个供开发人员使用的 JAR 文件

但是在我 运行 为了混淆我的代码而混淆之后,所有 Javadoc 文档都消失了。

我想在 jar 中保留所有 public 方法的 javadoc。 有谁知道如何在混淆后保持 Javadoc 可见?

谢谢!

来自 Proguard 的页面:

ProGuard is integrated into the Android build system, so you do not have to invoke it manually. ProGuard runs only when you build your application in release mode, so you do not have to deal with obfuscated code when you build your application in debug mode. Having ProGuard run is completely optional, but highly recommended.

所以我不确定你为什么要 运行 Proguard。只需在您的项目中配置它,然后让构建系统在发布构建时进行混淆。这样您的源代码就不会受到影响。

Java文档是从源文件中提取的。无法从 class 文件 创建 javadoc,既不干净也不混淆。 ProGuard 对通过编译您的 源文件 创建的 class 文件 进行操作,并生成 混淆的 class files 从它。这与 javadoc 的创建完全无关。

Javadoc 处理器的输出通常进入目录结构。当然,您可以将其压缩并为其提供 .jar 扩展名以提供 javadoc。我经常看到它(即在 Apache Commons 上)将你的库 JAR 命名为 foo-bar-1.2.3.jar 和压缩的 javadoc foo-bar-1.2.3-javadoc.jar.

提供与二进制文件分开的 javadoc 是个好主意,因为二进制文件需要包含在依赖它的程序分发中,而 javadoc 只对开发人员感兴趣并且只会增加大小如果程序在同一个 JAR 中,则不需要任何程序。

在IDE中,您需要将javadoc JAR 分配给库JAR。在 Eclipse 中,这可以从 PropertiesJava Build Path 对话框中完成。添加 JAR 文件后,展开您创建的条目旁边的白色箭头,select Javadoc location 然后 Edit...。 Eclipse 可以直接从存档 中读取Javadoc,无需解压缩。