我无法让 javadoc 引用另一个项目的 API。
项目之间存在严格的层次结构(“应用”项目引用的“公共(public)”项目)。 这两个项目都构建得很好,所以不存在实际不存在的类和包没有问题。
我的理解是 javadoc 没有与 Java 相同的构建路径,而是使用指向其他 javadoc 网站的链接。就能够生成 HTML 交叉引用而言,这有一些非常合乎逻辑的原因。
我的尝试如下:
- 我已经为公共(public)项目构建了 javadoc
- 我把它放在我内网上的网络服务器上
- 我向应用程序项目中的 javadoc ant 任务添加了指向 api(在我的内部网上)的链接。
- 我尝试构建应用程序项目
Javadoc 仍然吐出以下形式的错误消息:
[javadoc] C:\Users\couling\workspace\app\src\com\blahblah\app\AppMain.java:14: package com.blahblah.common.foo does not exist
[javadoc] import com.blahblah.common.foo.Bar
[javadoc] ^
生成的 javadoc 在项目之间没有交叉链接。
两个项目的ant任务如下:
常见的:
<javadoc
access="protected"
author="true"
classpath="."
destdir="out/doc/docs"
nodeprecated="false"
nodeprecatedlist="false"
noindex="false"
nonavbar="false"
notree="false"
packagenames="*"
source="1.6"
sourcepath="src"
splitindex="true"
use="true"
version="true">
<link href="http://download.oracle.com/javase/6/docs/api/" />
</javadoc>
应用:
<javadoc
access="protected"
author="true"
classpath="."
destdir="out/doc/docs"
nodeprecated="false"
nodeprecatedlist="false"
noindex="false"
nonavbar="false"
notree="false"
packagenames="com.blahblah.app.*"
source="1.6"
sourcepath="src"
splitindex="true"
use="true"
version="true">
<link href="http://intranet.blahblah.com/api/common/docs/" />
<link href="http://download.oracle.com/javase/6/docs/api/" />
</javadoc>
关于我需要做什么才能让应用程序引用通用的任何想法?
最佳答案
<link>
元素(或命令行 javadoc 的 -link
选项)仅有助于生成链接 - 但 Javadoc 会在较早的时候停止,如果它们引用未知(公共(public))类,它就无法真正与您的应用程序类一起使用。
在这方面,Javadoc 就像 Javac 一样工作 - 您必须以某种方式将它指向要使用的类,即它们必须在类路径中。您可以使用 <classpath>
元素指向 jar 文件或类目录,或 <sourcepath>
元素,以指向源(如果您需要从它们继承一些评论,请执行此操作)。
这不需要链接到标准 API,因为它已经包含在编译器中。
请注意,以这种方式链接需要 Javadoc 下载 package-list
从这个 URL - 你可以改为指向包含这个包列表文件的本地目录。
关于java - 在不同的项目之间交叉链接java doc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8431380/