如何使javadocinheritance适用于外部API? (与Maven2)
当类重写具体方法或实现和抽象方法时,除非显式覆盖,否则Javadoc会自动inheritance。
或者,至少该工具尝试这样做。 它似乎不适用于链接的外部API。 例如,当我在我的代码中实现java.util.Map
或JRE中的其他内容时,javadocs不会从JRE javadocs / apidocsinheritance/复制。
在我的具体情况下,我试图在Maven2 Javadoc插件中配置它,但是当我直接运行javadoc CLI工具时它是一样的。
我的Maven2 Javadoc插件配置目前看起来像这样:
org.apache.maven.plugins maven-javadoc-plugin 2.7 maven http://download.oracle.com/javase/6/docs/api
有关如何使这项工作的任何指示?
正如@Stephen所提到的,inheritance方法的源文件必须可用,并且必须位于-sourcepath
指定的路径上。 这在Javadoc工具文档中有解释:
自动复制方法注释
Javadoc工具能够在以下两种情况下复制或“inheritance”类和接口中的方法注释。 构造函数,字段和嵌套类不inheritancedoc注释。
自动inheritance注释以填充缺少的文本 – 当方法注释中缺少 主要描述或
@return
@throws
,@return
@param
或@throws
标记时,Javadoc工具从其覆盖或实现的方法中复制相应的主要描述或标记注释(如果有的话,根据下面的算法。更具体地说,当缺少特定参数的
@param
标记时,将从inheritance层次结构中的方法复制该参数的注释。 如果缺少特定exception的@throws
标记,则仅在声明该exception时才复制@throws
标记。此行为与版本1.3及更早版本形成对比,其中任何主要描述或标记的存在将阻止所有注释被inheritance。
使用
{@inheritDoc}
标记显式inheritance注释 – 在方法主要描述中插入内联标记{@inheritDoc}
或@return
{@inheritDoc}
,@return
{@inheritDoc}
或@throws
标记注释 – 将相应的inheritance主要描述或标记注释复制到该点。inheritance方法的源文件只需要在
-sourcepath
指定的路径上,以便文档注释实际可用于复制。 无论是类还是其包都不需要在命令行中传入。 这与1.3.x及更早版本形成对比,其中类必须是文档类
因此,您必须使用javadoc插件的
可选配置参数(默认情况下包含项目的源)。
顺便说一下,
是其他东西,
用于向外部项目添加交叉引用链接。 实际上,它们不应该用于JDK。 从配置链接 :
从2.6开始,将添加一个Javadoc API链接,具体取决于项目使用的JDK版本。 从
org.apache.maven.plugins:maven-compiler-plugin
(在${project.build.plugins}
或${project.build.pluginManagement}
定义)的参数的值中检测Javadoc API的版本
${project.build.pluginManagement}
),或通过Javadoc Tool可执行文件计算。 如果要跳过此链接,则需要将配置为
false
。注意:如果您使用不受支持的JDK(如7.0),则可以使用
参数添加其Javadoc API URL,即:
... api_1.7 http://download.java.net/jdk7/docs/api/ 有关更多信息,请参阅
参数。
假设您在编译器插件中配置了1.6 source
级别,那么Java API的交叉引用链接就可以正常工作(链接指向http://download.oracle.com/javase/6/docs/api/ ),没有什么可以添加的对于Java API。
对我来说,它都不是开箱即用的。 我不得不添加链接部分以使交叉引用工作。
奇怪的。 您是否实际指定了记录的编译器source
级别? 以防万一,这对我有用:
org.apache.maven.plugins maven-compiler-plugin 1.6 1.6 org.apache.maven.plugins maven-javadoc-plugin 2.7 http://commons.apache.org/dbcp/apidocs/ http://commons.apache.org/fileupload/apidocs/
我不能给你一个确定的答案,但我认为这个难题中缺少的部分是javadoc
实用程序需要能够找到相关外部API 的源代码才能使javadocinheritance工作。
我在StackOverflow上有一个类似的问题,它帮助我更好地解决了这个问题,而不是这个任务的接受答案: maven-javadoc-plugin和inheritDoc for Java API核心类
简介:为了从Java核心类inheritanceJavadoc,您需要解压缩它们的源并将它们包含在Javadoc构建中。 Java核心类的源代码在JDK发行版的src.zip
文件中提供。