有没有办法从package-info.java链接到这个包之外的另一个包(在同一个Project中)?
如果我尝试在java 7中执行此操作,我总是得到:
warning - Tag @link: reference not found:
答案 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}
*/