我在名为test.java的文件中拥有此类:

import java.nio.ByteBuffer;
import io.netty.buffer.ByteBuf;

public class test {
    public ByteBuffer x;
    public ByteBuf y;
}


我生成这样的javadocs:

javadoc -link http://docs.oracle.com/javase/7/docs/api/ -link http://netty.io/4.0/api/ test.java


仅创建到Java Platform包中类的链接,没有从Netty或我尝试过的其他包中的类的链接:

java - 链接到现有的javadocs仅适用于Java Platform软件包-LMLPHP

如何使javadoc也创建指向其他软件包的链接?



在javadoc的手册页上说,真正需要的唯一文件是package-list文件:


  Javadoc工具从软件包列表文件中读取软件包名称
  然后链接到该URL上的那些软件包。当Javadoc工具是
  运行时,将extdocURL值原样复制到链接中
  被创建。


对于这两个链接,这些文件都存在:


http://docs.oracle.com/javase/7/docs/api/package-list
http://netty.io/4.0/api/package-list


可能相关的是,在生成javadocs时不提供以下任何链接:

javadoc test.java


同样,它仅显示Java Platform软件包的软件包名称:

java - 链接到现有的javadocs仅适用于Java Platform软件包-LMLPHP

最佳答案

您收到任何javadoc警告/错误吗?

在我的末端,我看到:

$ javadoc -link http://docs.oracle.com/javase/7/docs/api/ -link http://netty.io/4.0/api/ test.java
Loading source file test.java...
Constructing Javadoc information...
test.java:2: error: package io.netty.buffer does not exist
import io.netty.buffer.ByteBuf;
                      ^
test.java:6: error: cannot find symbol
    public ByteBuf y;
           ^
  symbol:   class ByteBuf
  location: class test
Standard Doclet version 1.8.0_111


如果我将netty jar添加到javadoc的类路径中,错误就会消失,并且我构建的javadocs包含指向ByteBuf的链接:

$ javadoc -cp netty-4.0.42.Final/jar/all-in-one/netty-all-4.0.42.Final.jar -link http://docs.oracle.com/javase/7/docs/api/ -link http://netty.io/4.0/api/ test.java
Loading source file test.java...
Constructing Javadoc information...
Standard Doclet version 1.8.0_111
Building tree for all the packages and classes...

10-07 12:24
查看更多