从归档文件中的库继承javadoc



可以将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

相关内容

  • 没有找到相关文章

最新更新