有没有办法从 package-info.java 链接到这个包之外的另一个包(在同一个项目中)?
如果我尝试在 java 7 中执行此操作,我总是会得到:
warning - Tag @link: reference not found:
两者都@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 中的一个错误。
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.
这更像是一种解决方法,但至少如果您链接到包中的某个文件,com.foo.Bar
Eclipse 将允许您通过随后在 Inline Previews 等中悬停/单击来导航Bar
到描述中。package-info.java
foo
一半的答案是{@link some.package.name}
确实链接到包。
答案的另一半,正如我刚刚幸运地发现的那样,javadoc
必须在命令行上使用包名进行调用。好吧,这是一个猜测,因为我实际上正在使用 ant 的<javadoc/>
任务,但是一旦我添加 a <packageset/>
,reference not found
警告就消失了,并且生成的 javadoc 中的链接可用。
您必须导入使用过的包,以便 javadoc 知道您所指的名称空间。
package-info.java 应该看起来链接这个:
import package.subpackage.ClassnameYouWantToLink;
/**
* {@link ClassnameYouWantToLink}
*/
如果您不想导入包,则需要 ClassName 前面的完整限定包名:
/**
* {@link package.subpackage.ClassnameYouWantToLink}
*/