16

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

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

warning - Tag @link: reference not found:
4

5 回答 5

11

两者都@link支持@see 链接到包

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

/**
 * <p>但请注意,{@link gov.va.med.srcalc.domain} 中的类
 * 通过 JPA 注释定义绝大多数数据映射。</p>
 */
包 gov.va.med.srcalc.db;

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

于 2015-04-29T17:56:10.503 回答
6

A plain link with a @docroot works for the standard Java doclet:

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

It does not matter whether you need this in package-info.java or in a class, the {@link} tag cannot handle links to packages.

于 2014-01-09T12:28:18.120 回答
0

这更像是一种解决方法,但至少如果您链接到包中的某个文件,com.foo.BarEclipse 将允许您通过随后在 Inline Previews 等中悬停/单击来导航Bar到描述中。package-info.javafoo

于 2015-03-13T11:52:06.543 回答
0

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

答案的另一半,正如我刚刚幸运地发现的那样,javadoc必须在命令行上使用包名进行调用。好吧,这是一个猜测,因为我实际上正在使用 ant 的<javadoc/>任务,但是一旦我添加 a <packageset/>reference not found警告就消失了,并且生成的 javadoc 中的链接可用。

于 2015-10-28T12:26:10.807 回答
-3

您必须导入使用过的包,以便 javadoc 知道您所指的名称空间。

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

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

如果您不想导入包,则需要 ClassName 前面的完整限定包名:

/**
* {@link package.subpackage.ClassnameYouWantToLink}
*/
于 2012-07-11T14:20:33.377 回答