javadoc - 为具有 jar 依赖项的包生成 javadoc

标签 javadoc

如果包中的源文件依赖于某些外部库(jar),如何为包生成 javadoc?

这是一个没有库依赖项的包的环境和 javadoc 生成:

mkdir -p ~/doctest/com/foo/bar/baz
cd ~/doctest
cat > com/foo/bar/baz/Glorp.java << EOF
package com.foo.bar.baz;
public class Glorp {
  /**
   * Here's some javadoc.
   *
   * @return A magic number
   */
   public static void foo() { return 42; }
}
EOF
javadoc -d doc com.foo.bar.baz

现在假设它取决于commons-logging-1.2.jar,您如何生成javadoc?你不能只运行上面的命令,javadoc 会提示它不知道 Logger 是什么。

wget http://ftp.download-by.net/apache//commons/logging/binaries/commons-logging-1.2-bin.tar.gz
mkdir jars
tar xf commons-logging-1.2-bin.tar.gz --one-top-level=jars
sed -i 's/package.*/&\nimport org.apache.log4j.Logger;/' com/foo/bar/baz/Glorp.java
javadoc -d doc com.foo.bar.baz
Loading source files for package com.foo.bar.baz...
Constructing Javadoc information...
./com/foo/bar/baz/Glorp.java:2: error: package org.apache.log4j does not exist
import org.apache.log4j.Logger;
                       ^
1 error

仅在类路径上添加 jar 似乎也不起作用:

javadoc -classpath jars/ -d doc com.foo.bar.baz
Loading source files for package com.foo.bar.baz...
javadoc: error - No source files for package com.foo.bar.baz
1 error

此时我已经没有主意了。有关如何做的任何指示吗?谢谢。

(当我搜索这个问题时,我只找到涉及 Maven、Gradle 或其他此类程序的答案,但我不想使用它们,这个问题是关于 javadoc,而不是构建工具或 IDE。)

最佳答案

你能编译你的代码吗? Javadoc 类路径设置应该与编译时的设置相同。

查看你下载的jar文件,它似乎没有log4j类:

unzip -l commons-logging-1.2.jar | grep log4j

显示为空。

当我更换时

import org.apache.log4j.Logger;

使用您下载的 jar 中的类之一,例如,

import org.apache.commons.logging.impl.Log4JLogger;

并将类路径设置为 jars 路径和当前目录(以便它找到您的源代码),它可以工作:

javac -cp .:jars/commons-logging-1.2/commons-logging-1.2.jar com/foo/bar/baz/Glorp.java 
javadoc -cp .:jars/commons-logging-1.2/commons-logging-1.2.jar  -d doc com.foo.bar.baz

关于javadoc - 为具有 jar 依赖项的包生成 javadoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55784090/

相关文章:

java - 名称 'flight_Num' 必须与模式 '^[a-z][a-zA-Z0-9]*$' 匹配

java - 如何在 Python 中记录返回的列表

java - 在 Gradle 中启用 HTML5 Javadoc

javadoc - 如何为 AEM CQ5.6 配置 javadocs?

java - 如果创建站点,如何避免多次调用 javadoc?

java - 在 Android Studio 中更改作者模板

java - File.mkdir 或 mkdirs 返回 false - 原因?

java - 以编程方式运行标准 Doclet

java - 如何在 Android Studio 中注释/记录 R.java 类

java - 无法使用 Ant 编译 javadoc