如何将 javadoc 或源附加到 libs 文件夹中的 jar?

Posted

技术标签:

【中文标题】如何将 javadoc 或源附加到 libs 文件夹中的 jar?【英文标题】:How to attach javadoc or sources to jars in libs folder? 【发布时间】:2012-04-10 00:24:43 【问题描述】:

Eclipse 的新版本 ADT r17 插件添加了自动设置 JAR 依赖项的功能。 /libs 文件夹中的任何 .jar 文件现在都添加到构建配置中。不幸的是,android Dependencies 类路径容器是不可修改的。

如何将 javadoc 和源附加到自动插入的 .jar(来自 /libs 文件夹)?

【问题讨论】:

我认为您的问题没有得到解答。马克接受的答案正是您要求的不是解决方案。我们如何通过自动库(而不是通过手动 jars)附加 javadoc 和源代码? 此错误code.google.com/p/android/issues/detail?id=27490#c21 存在问题。评论 21 说在 ADT r20 中可以使用标准 java .properties 文件(foo.jar -> foo.jar.properties)附加源/javadoc,该文件允许您编辑源文件夹(或存档)的相对或绝对路径,并且/ 或 javadoc 的相对或绝对路径。 【参考方案1】:

回答问题的最佳方法是总结Xavier、plastiv、VinceFR 和Christopher 的答案。

分步指南

为了将 sources 和 javadoc 链接到 Eclipse 自动链接的 .jar 库,您必须执行以下操作:

    将库 .jar 文件放在 libs 文件夹中,并将关联的源 .jar 和 doc .jar 文件放在单独的子文件夹中,例如 libs/src库/文档。如果需要,您可以使用 srcdocs 以外的名称,但重要的是 .jar 文件不直接在 libs 中文件夹。 在libs 文件夹中创建一个.properties 文件,并使用实际库.jar 的确切名称(参见示例)。确保保留 .jar 部分。 在 .properties 文件中指定源代码和 javadoc .jar 的相对路径。 关闭并重新打开 Eclipse 项目!或者,按 F5 刷新项目。 在源代码中选择链接库的对象。 在 Eclipse 中打开 Javadoc 视图以查看文档(参见屏幕截图)。 打开所选对象的源代码声明(默认快捷键:F3)。

示例

示例使用Gson library。

libs文件夹的目录结构:

libs
├── docs
│   └── gson-2.2.2-javadoc.jar
├── gson-2.2.2.jar
├── gson-2.2.2.jar.properties
└── src
    └── gson-2.2.2-sources.jar

gson-2.2.2.jar.properties 的内容

src=src/gson-2.2.2-sources.jar
doc=docs/gson-2.2.2-javadoc.jar

其他信息

您当然可以将 javadoc 和源 .jar 移动到其他文件夹并指定相对路径。这取决于你。将源和 javadoc jar 直接放入 lib 文件夹是可能的,但不推荐,因为这会导致文档和源代码包含在您的应用程序中.

Eclipse JavaDoc 面板的屏幕截图:

使用 Gson 和 Android 4.2.2 的 Eclipse 项目的屏幕截图。:


引用解压后的 javadocs

如果您想引用不是作为打包 .jar 提供的 javadocs,而只是按照android developer in the comments 的要求作为文件和文件夹 提供,请执行以下操作:

    将库.jar 放在libs/ 文件夹中

    创建一个yourlibraryname.jar.properties 文件(不要忘记.jar),其内容如下:

     doc=docs
    

    将 javadocs 文件夹添加到 libs/ 文件夹。

你应该想出以下文件夹结构:

├── docs
│   ├── allclasses-frame.html
│   ├── allclasses-noframe.html
│   ├── com
│   │   └── google
│   │       └── ads
│   │           ├── Ad.html
│   │           │   ....
│   │           └── package-tree.html
│   │   ...
│   └── stylesheet.css
├── GoogleAdMobAdsSdk-6.4.1.jar
└── GoogleAdMobAdsSdk-6.4.1.jar.properties

不要忘记如上所述关闭并重新打开 Eclipse 项目! 这是一个引用 GoogleAdMobAds Android library 的工作示例项目的屏幕截图。

【讨论】:

啊,这是我需要的 Eclipse 项目的关闭和重新打开。 (在此之前我已经刷新和清洁了几次,但没有运气。) 感谢@JJD,效果很好。我只需要在 Eclipse 开始工作之前重新启动它。 注意:真的 应该将 Javadoc 和源 JAR 放入子目录,例如“./libs/docs”,否则这些 JAR 将被捆绑到您的 APK 中!此外,您将无法为多个库包含 Javadoc,因为当找到重复的 HTML 文件时,构建 APK 将失败。 是否可以从 .properties 文件中引用远程 javadoc?像这样:doc=community.versant.com/documentation/reference/db4o-8.0/java/api 显然,如果您只想链接 Javadoc 而不是源代码,这将不起作用,我必须使用 7zip 将 Javadoc jar 提取到“我的文档”中的文件夹中,然后拥有属性文件像这样 doc=C:\\Users\\johny\\workspacenewfb\\robotium-solo-4.0-javadoc 直接指向带有 Javadoc index.html 的文件夹【参考方案2】:

在 Windows 上,您必须转义反斜杠以引用属性文件中的 doc 和 src 路径。例如,对于 android-support-v4.jar 的属性文件内容是这样的:

doc=C:\\Program Files (x86)\\Android\\android-sdk\\extras\\android\\support\\v4\\docs
src=C:\\Program Files (x86)\\Android\\android-sdk\\extras\\android\\support\\v4\\src

【讨论】:

哇,你的回答解决了我的问题,我放了一个 \ 但我们必须放 \\ 。非常感谢h【参考方案3】:

回复来自http://code.google.com/p/android/issues/detail?id=27490#c21

在您的 libs 文件夹中,您必须有:

doc(folder)
    foo_doc(folder)
        index.html
        ...
        ...
foo.jar
foo.jar.properties

在您的foo.jar.properties 中,只需输入doc=./doc/foo_doc

也许您必须刷新您的项目、清理它、关闭它并重新打开它。

它对我有用!

【讨论】:

如果您有 zip 文件中的文档,这是可行的方法,非常感谢!!竖起大拇指【参考方案4】:

我尝试了以上所有方法,但没有一个对我有用。我想出了一个永远有效的方法。基本上,罪魁祸首是 ADT 处理“libs”文件夹的方式,所以我退出使用“libs”文件夹。相反,我创建了一个“库”文件夹并使用它。

您可以执行以下操作,并且它将始终有效 - 即使 ADT 应该更改它在未来处理“libs”文件夹的方式:

    创建一个“库”文件夹。 在其下为每个库创建一个子文件夹。 将每个库的所有文件放在适当的文件夹中(java jar 文件、源 jar 文件、javadoc jar 文件等)。 通过单击 Add Jars... 按钮为 Java 构建路径的“库”选项卡中的每个项目添加 java jar 文件,以从库子文件夹中添加 jar “库”文件夹。 通过在“库”选项卡中打开项目,选择所需的项目,然后单击 Edit... 按钮添加源/javadocs 到每个项目“libraries”文件夹中的 library 子文件夹。 选中 Java 构建路径的“订购和导出”选项卡中每个项目的复选框。 确认所有库都已移动后,删除“libs”文件夹。

按照上述过程,您的项目将拥有如下所示的文件夹:

您的 Java 构建路径将如下所示:

按顺序和导出库已打勾:

【讨论】:

【参考方案5】:

现在,将您想要 Javadoc 的库移动到 lib。他们将该库添加到 Build Path 并添加 Javadoc。

在 android 问题中检查此 comment。

【讨论】:

不要忘记(像我一样)检查订单并将库设置为在Build Path 中导出。【参考方案6】:

在 ADT 22 上,我无法访问 commons-io-2.4.jar 和 android-support-v4.jar 的 Javadoc

这是我修复它的方式:

    前提条件:两个库都列在“引用的库”下。

    右键单击 commons-io-2.4.jar 并选择属性。出现此窗口:

commons-io-2.4.jar 与 commons-io-2.4-javadoc.jar 捆绑在一起,所以我在存档外部文件路径中指定了 Javadoc。

我对支持库做了同样的事情:右键单击 android-support-v4.jar 并选择 Properties。出现此屏幕:

这次我指定了源目录的路径。

【讨论】:

这是迄今为止将 javadoc 和/或 src 附加到库的最简单和最直接的方法。谢谢!作为补充说明,javadoc 和 src 都不需要在引用的库中。【参考方案7】:

当我升级到 SDK 工具和 ADT 修订版 17 时,对 commons-io-2.0.1.jar 的库引用已损坏。

为了解决这个问题,我使用了 Project -> Properties -> Java Build Path 并选择了 Libraries 选项卡。我删除了对 commons-io-2.0.1.jar 的所有引用,然后使用 Add Jar 将 commons-io-2.0.1.jar 重新添加到项目中。然后单击库名称旁边的“>”箭头以展开库引用,并使用编辑按钮设置源附件和 Javadoc 位置。

抱歉,我无法发布图片,因为我没有足够的代表(请...)。

【讨论】:

对我不起作用。 jar 文件保存在项目中的什么位置?我在 libs 文件夹中有我的。 终于有人给出了一个真正有效的指令!非常感谢你。包括“.properties”文件在内的上述方法都没有对我有任何好处,但是在对话框屏幕中将库作为外部 JAR 添加就可以了。【参考方案8】:

似乎是一个移动的目标,但是,在从许多地方收集了一些零碎的信息之后(包括对这个问题的答案,它有助于但未能描述所有必要的细节,或者系统可能在此期间略有变化),这至少到目前为止(2013 年 8 月 28 日)似乎是解决方案。

在项目中的某处为您的 javadocs 打开一个文件夹。 将您的 javadocs 解压缩,放入各自的文件夹中。 在您的 lib 文件夹中,为您要与 javadoc 关联的每个库添加一个 xxx.jar.properties 文件。 在该属性文件中,参考您将相应的 javadoc 解压缩到的 文件夹(在 Windows 上,转义反斜杠):

doc=d:\\Android\\javadoc\\libGoogleAnalyticsServices

在 Eclipse 中关闭并重新打开您的项目(刷新是不够的)。现在,当您将鼠标悬停在相应的类上时,您应该会看到工具提示。

未能遵守任何这些步骤(不解压缩 javadoc、引用文件而不是文件夹等)似乎会破坏它。

【讨论】:

【参考方案9】:

我知道这个问题很老了,但是当我昨天遇到同样的问题并且上面发布的解决方案对我来说太烦人时,我发现可以轻松地将源路径定义添加到 .classpath 文件该项目。然后 Eclipse 将对其进行调整,您就可以浏览源代码。

之前的类路径条目:

<classpathentry kind="lib" path="[PATH_TO_MY_JAR]"/>

添加源路径后

<classpathentry kind="lib" path="[PATH_TO_MY_JAR]" sourcepath="[PATH_TO_MY_SOURCE_JAR]"/>

希望对你有帮助

【讨论】:

【参考方案10】:

只需更新 ADT 插件。这对我有用!

    启动 Eclipse,然后选择帮助 > 安装新软件。 点击右上角的添加。 在出现的“添加存储库”对话框中,输入“ADT 插件”作为名称,输入以下 URL 作为位置: https://dl-ssl.google.com/android/eclipse/ 注意:Android 开发者工具更新站点需要安全连接。确保您输入的更新站点 URL 以 HTTPS 开头。 单击确定。 在“可用软件”对话框中,选中“开发者工具”旁边的复选框,然后单击“下一步”。 在下一个窗口中,您将看到要下载的工具列表。点击下一步。 阅读并接受许可协议,然后单击完成。 如果您收到无法确定软件真实性或有效性的安全警告,请单击“确定”。 安装完成后,重启 Eclipse

希望有帮助!

【讨论】:

【参考方案11】:

对于任何给定的 jar,如果您想在编码时查看工具提示上的 Javadoc 帮助,请执行以下操作: 右键单击您的项目 > 属性 > Java 构建路径 > 库选项卡。单击 jar 旁边的箭头以展开。

源附件 应该指向实际 jar 的位置(可能就在您的 java 文件夹中)。

Javadoc 位置:您有两个选择:URL 和存档。如果此 jar 的 javadocs 是在第一级包含 index.html 文件的文件夹形式,请选择“Javadoc URL”并指向该文件夹。 如果您的 javadoc 在 jar 中,请选择“Javadoc in archive”并指向 jar。 不要忘记重新启动您的工作区/关闭并重新打开您的项目以使用 Javadoc 信息更新工具提示。

我希望这有助于为我认为应该是一项非常简单的任务提供一个简单的答案。

【讨论】:

【参考方案12】:

我的解决方案:

下载一个名为:“Java Source Attacher Feature”的eclipse插件。

稍后,选择一个 jar 并使用此插件附加源代码。在jar文件中点击选中,鼠标右键,然后选择“attach java source”。

当您拥有源代码时,您会自动获得 javadoc。

现在您可以在类上使用 F2 来查看相关的 javadoc。

享受

【讨论】:

以上是关于如何将 javadoc 或源附加到 libs 文件夹中的 jar?的主要内容,如果未能解决你的问题,请参考以下文章

将新的 JavaDoc 附加到来自 super 方法的现有 JavaDoc

如何在 Eclipse 中为任何 jar 文件附加源代码或 JavaDoc,例如JavaFX?

如何将项目的 Java Doc 发布到 github?

如何使用 go.uber.org/zap lib 以不同的日志级别打印不同的颜色,并根据日志级别将日志附加到不同的文件?

如何在eclipse中自动附加javadoc或指定javadoc位置

使用 MIMEApplication 将 s3 文件附加到 smtplib lib 电子邮件