可以将JDK文档继承到生成Javadoc时覆盖/实现的方法中。(例如这个SO问题。)
这是通过在Javadoc-sourcepath中添加一个包含JDK源代码的目录来实现的。我假设,如果我解压缩任何库依赖项的源代码,也会发生同样的事情。
是否可以在不解压所有源代码的情况下继承文档?这将允许使用我可以从Ivy/Maven或其他地方创建的路径进行完整的文档。
也许可以欺骗Javadoc使用某种zip路径?
我意识到我可以链接到网络上其他地方的文档——同样有用,但不同。
来自Javadoc文档:
使用
{@inheritDoc}
标记显式继承注释-在方法主描述或@return
、@param
或@throws
标记注释中插入内联标记{@inheritDoc}
-相应的继承主描述或标记注释将复制到该位置。继承方法的源文件只需要位于-sourcepath指定的路径上,文档注释就可以实际复制。类及其包都不需要在命令行中传递。
我用这样的maven项目配置来实现这一点,以便链接的核心java文档始终与我的编译版本相匹配。我想链接selenium的所有文档,因为这是一个严重依赖它的页面对象框架的一部分。我相信我们可以根据您的设置调整这种方法。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<links>
<link>http://seleniumhq.github.io/selenium/docs/api/java/</link>
<link>https://docs.oracle.com/javase/${project.java.version}/docs/api/</link>
</links>
</configuration>
</plugin>
其核心是,这与使用javadoc的命令行选项链接到网络上的内容相同,就像您链接的这个问题的答案一样。只需要参数化它链接到的url。
对于命令行javadoc,我认为它的翻译如下(unix语法,一行):
javadoc -sourcepath ../example-src/src:src -d docs -link http://example.com/javadoc/ -subpackages com.personal.myproject (other options...)
Doh!刚刚意识到这一切都假设您的外部库在某个地方托管它们的文档。我想如果不是这样的话,也许您可以探索为外部库生成一个javadoc-jar,并使用jar风格的uri进行链接。至少,您只向项目中引入了一个新工件。
在JDK 1.8.0u121中,-sourcepath
确实接受ZIP文件,例如JDK本身附带的src.zip
。