为什么 JAR 文件不包含文档?
Why JAR Files Do Not Contain Documentation?
我正在编写一个小型 Java 库,其中包含我通常在大多数 android 应用程序中包含的相关代码。我决定将库导出为 jar 文件,然后将该文件放入我未来项目的 libs 文件夹中。
使用 Android Studio:
- 我创建了一个 Java 库模块并将我的代码放入其中。我在 this.
之后对某些方法添加了一些注释
- 然后,我 运行 gradle 中的 jar 任务给了我模块 build/libs 目录中的 .jar 文件。
现在,当我在我的一个 android 应用程序中使用这个 jar 时,一切都按预期工作,除了 文档部分。当我将鼠标悬停在我的库的 类 和方法上时,我没有看到我写的文档注释。
Q1:我是不是还漏了一步?
Q2:jar文件应该没有注释吗?
有一个单独的 Gradle 任务来生成 javadoc。尝试添加以下内容:
task javadocJar(type: Jar, dependsOn:javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir }
然后运行:
gradle javadocJar
看看是否有帮助。
除上述内容外,您还可以尝试添加以下内容以生成包含已编译 类 和 javadoc 的单个 jar:
jar {
from javadoc.destinationDir
}
jar.dependsOn javadoc
我不知道将所有内容捆绑在同一个罐子中是否是正确的决定。我更喜欢将 jar 分开,也许会找到另一种方法让 IDE 使用 javadoc jar 文件。也许尝试添加 javadoc jar 作为模块的另一个依赖项。
javadocs 是从源代码中的 javadoc 注释 生成的文档。它们不是普通 JAR 文件的一部分,因为那样会不必要地使 JAR 文件膨胀……其中包含一些 运行 编写代码不需要的东西。
javadoc 可以通过 Gradle 任务、javadoc
命令(如果安装了 Java SDK)和各种其他工具生成。然后您可以使用网络浏览器阅读它们。
另一方面,IDEs 通常可以呈现源代码中的 javadoc 注释并将它们显示为弹出窗口等。 (有些人会称之为“javadoc”,但我认为这是一种夸大的说法,因为您通常无法浏览文档......就像阅读 javadoc 文档一样。)
为了呈现 javadoc 注释,IDE 需要源代码。 JAR 文件(通常)不包含任何源代码或 javadoc。相反,处理此问题的正常方法是告诉 IDE 源代码的位置,方法是将其指向源代码目录、包含源代码的 ZIP 文件,或者 URL 下载源代码。
(我不使用 Android Studio,所以我可以确切地告诉您如何执行此操作。但是,我认为 IDE 的联机帮助解释了如何执行此操作。 ..)
看来您的最终目标是以一种允许程序员查看 javadoc 注释的方式分发您的库。
做到这一点的简单方法是分发源代码。 This Q&A 描述如何让 Gradle 生成包含源代码的单独存档,或将源代码添加到包含编译代码的 JAR1.
如果不能接受,您可能需要将 javadoc 生成为 HTML2 并将 HTML 树作为单独的 ZIP 文件提供程序员可以解压缩并使用网络浏览器阅读。或者,将 javadoc 放在网站上。
1 - 我不推荐这个。只想将 JAR 作为二进制文件使用的人可能会抱怨“臃肿”。
2 - 如果既不能提供源代码也不能提供 javadoc HTML 文档,我认为没有实用的解决方案。
可以这样
您好,这是可行的,但需要像在 jar 文件中做一些小改动。
首先,从代码的角度来看,jar 文件只包含编译后的“.class”文件,而不包含源文件“.java”
因此,如果您需要将文档与 jar 一起应用,我的意思不是创建的 index.html 而是每当有人使用 jar API 并调用有建议的方法。
示例:
为此,我们还需要在生成 .jar 文件时添加一个源文件。
相同的步骤:
- 在代码中键入 comments/java 文档
- 生成文档
- 这将在项目文件夹中创建一个 doc 文件夹
- 现在创建 jar 文件
- 确保选择此选项,如下所示
- 几乎完成只是通过将 jar 导入另一个项目来测试它,它应该按照文档的建议
非常重要这可能是有害的,因为你在你的 jar 中包含源 files.java 所以在确定你是否需要之前。!!!!
希望这能给你答案
有任何问题可以联系我: VaibhavMojidra.com
我正在编写一个小型 Java 库,其中包含我通常在大多数 android 应用程序中包含的相关代码。我决定将库导出为 jar 文件,然后将该文件放入我未来项目的 libs 文件夹中。
使用 Android Studio:
- 我创建了一个 Java 库模块并将我的代码放入其中。我在 this. 之后对某些方法添加了一些注释
- 然后,我 运行 gradle 中的 jar 任务给了我模块 build/libs 目录中的 .jar 文件。
现在,当我在我的一个 android 应用程序中使用这个 jar 时,一切都按预期工作,除了 文档部分。当我将鼠标悬停在我的库的 类 和方法上时,我没有看到我写的文档注释。
Q1:我是不是还漏了一步?
Q2:jar文件应该没有注释吗?
有一个单独的 Gradle 任务来生成 javadoc。尝试添加以下内容:
task javadocJar(type: Jar, dependsOn:javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir }
然后运行:
gradle javadocJar
看看是否有帮助。
除上述内容外,您还可以尝试添加以下内容以生成包含已编译 类 和 javadoc 的单个 jar:
jar {
from javadoc.destinationDir
}
jar.dependsOn javadoc
我不知道将所有内容捆绑在同一个罐子中是否是正确的决定。我更喜欢将 jar 分开,也许会找到另一种方法让 IDE 使用 javadoc jar 文件。也许尝试添加 javadoc jar 作为模块的另一个依赖项。
javadocs 是从源代码中的 javadoc 注释 生成的文档。它们不是普通 JAR 文件的一部分,因为那样会不必要地使 JAR 文件膨胀……其中包含一些 运行 编写代码不需要的东西。
javadoc 可以通过 Gradle 任务、javadoc
命令(如果安装了 Java SDK)和各种其他工具生成。然后您可以使用网络浏览器阅读它们。
另一方面,IDEs 通常可以呈现源代码中的 javadoc 注释并将它们显示为弹出窗口等。 (有些人会称之为“javadoc”,但我认为这是一种夸大的说法,因为您通常无法浏览文档......就像阅读 javadoc 文档一样。)
为了呈现 javadoc 注释,IDE 需要源代码。 JAR 文件(通常)不包含任何源代码或 javadoc。相反,处理此问题的正常方法是告诉 IDE 源代码的位置,方法是将其指向源代码目录、包含源代码的 ZIP 文件,或者 URL 下载源代码。
(我不使用 Android Studio,所以我可以确切地告诉您如何执行此操作。但是,我认为 IDE 的联机帮助解释了如何执行此操作。 ..)
看来您的最终目标是以一种允许程序员查看 javadoc 注释的方式分发您的库。
做到这一点的简单方法是分发源代码。 This Q&A 描述如何让 Gradle 生成包含源代码的单独存档,或将源代码添加到包含编译代码的 JAR1.
如果不能接受,您可能需要将 javadoc 生成为 HTML2 并将 HTML 树作为单独的 ZIP 文件提供程序员可以解压缩并使用网络浏览器阅读。或者,将 javadoc 放在网站上。
1 - 我不推荐这个。只想将 JAR 作为二进制文件使用的人可能会抱怨“臃肿”。
2 - 如果既不能提供源代码也不能提供 javadoc HTML 文档,我认为没有实用的解决方案。
可以这样
您好,这是可行的,但需要像在 jar 文件中做一些小改动。
首先,从代码的角度来看,jar 文件只包含编译后的“.class”文件,而不包含源文件“.java”
因此,如果您需要将文档与 jar 一起应用,我的意思不是创建的 index.html 而是每当有人使用 jar API 并调用有建议的方法。
示例:
为此,我们还需要在生成 .jar 文件时添加一个源文件。
相同的步骤:
- 在代码中键入 comments/java 文档
- 生成文档
- 这将在项目文件夹中创建一个 doc 文件夹
- 现在创建 jar 文件
- 确保选择此选项,如下所示
- 几乎完成只是通过将 jar 导入另一个项目来测试它,它应该按照文档的建议
非常重要这可能是有害的,因为你在你的 jar 中包含源 files.java 所以在确定你是否需要之前。!!!!
希望这能给你答案
有任何问题可以联系我: VaibhavMojidra.com