2012-07-04 28 views
14

¿Hay alguna forma de vincular desde un paquete-info.java a otro paquete fuera de este paquete (en el mismo proyecto)?@link a otro paquete dentro de un paquete-info.java

Si trato de hacer esto en Java 7 Siempre tengo:

warning - Tag @link: reference not found: 
+0

¿Ya descubriste cómo hacer esto? (y: * ¿quieres * hacer referencia a otro paquete, no algo dentro del paquete, ¿verdad?) – scravy

+0

@scravy en realidad esta pregunta es muy antigua. Creo que nunca encontré una solución (esto fue para un proyecto con una línea muerta casi cercana). Volveré a echarle un vistazo en el nuevo año. – someonr

Respuesta

-3

hay que importar el paquete utilizado hasta javadoc conoce el espacio de nombres que se hace referencia.

package-info.java debe ser vincular esta:

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

si no desea importar el paquete que necesita la plena quallified nombre-paquete delante del nombre de clase:

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

Creo que el operador quiere vincular el paquete, no un objeto dentro del paquete. – scravy

+0

Un paquete es una carpeta y no puede contener un documento Java en sí (y usted solo puede vincular los archivos). Entonces, como convención, agregas una clase 'package-info' en el paquete y un enlace a esta clase. – Simulant

+0

No puede usar una importación en package-info.java para este propósito. La importación viene después del paquete y javadoc está en el elemento del paquete, por lo que la importación es posterior a javadoc y el compilador javadoc no lo ve. –

6

Un enlace simple con un @docroot obras para la doclet estándar de Java:

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

No importa si necesita esto en package-info.java o en una clase, la etiqueta {@link} no puede manejar enlaces a paquetes.

+1

Esto podría funcionar cuando realmente genera documentación, pero no funciona con documentos emergentes dinámicos en Eclipse. Eclipse admite el enlace de {@link com.mypackage}. –

0

Esto es más de una solución, pero al menos si se vincula a algún archivo en el paquete com.foo.Bar Eclipse le permitirá navegar desde Bar en la descripción package-info.java colocando el cursor sobre/clic sobre foo después en línea Avances etc.

9

Ambos @link y @seesupport linking to packages.

Tengo el siguiente código en uno de mis package-info.java archivos y la herramienta javadoc genera el enlace:

 
/** 
* <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;

Utilizamos Gradle como nuestra herramienta de construcción y he encontrado, sin embargo, que Gradle no genera el enlace y produce una advertencia reference not found: gov.va.med.srcalc.domain. Tal vez es un error en Gradle.

0

La mitad de la respuesta es que {@link some.package.name} de hecho los enlaces al paquete.

La otra mitad de la respuesta, como acabo de descubrir por suerte, es que se debe llamar a javadoc con nombres de paquetes en la línea de comandos. Bueno, esto es una suposición, porque en realidad estoy usando la tarea <javadoc/> de hormiga, pero tan pronto como agregue un <packageset/>, las advertencias reference not found desaparecieron y los enlaces estaban disponibles en el javadoc generado.

Cuestiones relacionadas