继承javadoc,而不为继承的源生成文档

时间:2011-02-07 14:00:40

标签: java ant documentation javadoc

我希望class B从它实现的接口interface A继承Javadoc。我在Javadoc命令中包含了interface A的源代码,class B正确地继承了文档。

现在我想知道我是否可以让它生成的链接指向网站上的interface A文档,而不是在我的网站上复制它,即“指定者:”链接将链接到外页。

这可能吗?

2 个答案:

答案 0 :(得分:3)

有可能,是的。 为了能够包含继承的文档,接口A的源必须在javadoc的源路径中找到,但不应该在传递给javadoc的包列表中以便创建文档。 要进行链接,请使用-link参数。我刚试过这个(使用ant javadoc任务):

<javadoc destdir="docs">
  <sourcepath>
    <!-- source of your class B -->
    <pathelement location="src" /> 
    <!-- source of external interface A -->
    <pathelement location="../example-src/src" />
  </sourcepath>

  <!-- your packages, to generate the docs for -->
  <package name="com.personal.myproject.*" />

  <!-- the location of the online documentation -->
  <link href="http://example.com/javadoc/"/>
</javadoc>

对于命令行javadoc,我认为这样翻译(unix语法,一行):

 javadoc -sourcepath ../example-src/src:src
         -d docs
         -link http://example.com/javadoc/
         -subpackages com.personal.myproject
         (other options...)

其中

  • class B位于包com.personal.myproject
  • interface A位于包com.example
  • 我自己的来源位于src
  • 接口A的来源位于../example-src/src

在为此创建的示例类中,javadoc会将文档从A.methodName()复制到B.methodName(),但会链接到http://example.com/javadoc/com/example/A.html#methodName()的在线文档。

感谢您提出这个问题,我一直想这样做: - )

答案 1 :(得分:0)

Paŭlo Ebermann's answer致以诚挚的信誉,指出我的设置方向正确。请首先阅读该答案,因为它只是提供了另一种配置解决方案的方法。

<小时/> 所以我想我会分享我为maven管理项目的人,并使用maven-javadoc-plugin作为构建过程的一部分来生成他们的文档。

作为插件配置的一部分,您可以指定要包含的一组链接。 Here is the bit专门用于配置链接。

这是一个示例链接selenium和java se的外部文档,用于在jar中打包以与我的项目一起部署。美丽的是,我项目中的这些javadoc只是无形地链接到外部的。

<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>

<小时/> 顺便说一句,如果您发现此页面上的任何内容有用,请在某处链接到它。在谷歌上找到这个页面太难了,这是一个非常好的事情。