@link到package-info.java中的另一个包

时间:2012-07-04 05:14:27

标签: java javadoc

有没有办法从package-info.java链接到这个包之外的另一个包(在同一个Project中)?

如果我尝试在java 7中执行此操作,我总是得到:

warning - Tag @link: reference not found:

5 个答案:

答案 0 :(得分:9)

@link@see support linking to packages

我的package-info.java个文件中有以下代码,javadoc工具会生成链接:

/**
 * <p>Note, however, that the classes in {@link gov.va.med.srcalc.domain}
 * define the vast majority of the data mapping via JPA annotations.</p>
 */
package gov.va.med.srcalc.db;

我们使用Gradle作为构建工具,但我发现Gradle不会生成链接并产生reference not found: gov.va.med.srcalc.domain警告。也许这是Gradle中的一个错误。

答案 1 :(得分:6)

@docroot的普通链接适用于标准Java doclet:

/**
 * See the 
 * <a href="{@docRoot}/com/mycorp/package-summary.html#package_description">
 *    package overview
 * </a> for more information.
 */

无论您是在package-info.java还是在类中都需要它,{@link}标记都无法处理包的链接。

答案 2 :(得分:0)

这是一种解决方法,但至少如果您链接到包com.foo.Bar中的某个文件,Eclipse将允许您通过将鼠标悬停在Bar上导航到package-info.java描述/之后在内联预览等中点击foo

答案 3 :(得分:0)

答案的一半是{@link some.package.name}确实链接到包裹。

正如我刚才所说,答案的另一半是必须在命令行上使用包名称调用javadoc。嗯,这是一个猜测,因为我实际上正在使用ant <javadoc/>任务,但只要我添加<packageset/>reference not found警告就会消失,并且链接可用在生成的javadoc中。

答案 4 :(得分:-3)

您必须导入已使用的Package,以便javadoc知道您要引用的命名空间。

package-info.java应该看起来链接这个:

import package.subpackage.ClassnameYouWantToLink;
/**
* {@link ClassnameYouWantToLink}
*/

如果您不想导入包,则需要完整的quallified package-NameName的名称:

/**
* {@link package.subpackage.ClassnameYouWantToLink}
*/