Vinculando a um URL externo em Javadoc?

768

Algo como:

/**
 * See {@linktourl http://google.com}
 */
ripper234
fonte

Respostas:

1225

Isso cria um cabeçalho "Consulte também" contendo o link, ou seja:

/**
 * @see <a href="http://google.com">http://google.com</a>
 */

renderizará como:

Veja também:
           http://google.com

considerando que isto:

/**
 * See <a href="http://google.com">http://google.com</a>
 */

criará um link in-line:

Veja http://google.com

aem999
fonte
59
Se alguém estiver interessado, já que eu apenas tinha que procurar: De acordo com a especificação do Javadoc, a @seetag vem após as tags @param/ @returne antes das @since/ @serial/ @deprecated.
Friederbluemle
7
Por precaução, o Intellij 13 parece não suportar esta tag. Ele suporta links em linha. A tag está de alguma forma descontinuada?
Timo
24
Eu recomendo <a href="http://google.com" target="_top">http://google.com</a>. O motivo da adição de target = "_ top" é porque alguns dos arquivos javadoc html gerados fazem uso de quadros, e você provavelmente deseja que a navegação afete a página inteira, e não apenas o quadro atual.
Antony
3
Se você receber um aviso como "warning - Tag \ @see: final final '>':", verifique se você não possui dois hiperlinks na mesma diretiva \ @see. Em vez disso, use um link por \ @see.
Travis Spencer
7
por que é tão complicado adicionar um link de URL a um javadoc? que achou que o HTML era uma boa idéia ... / facepalm
Alguém em algum lugar
189

Retirado da especificação javadoc

@see <a href="URL#value">label</a>: Adiciona um link conforme definido por URL#value. O URL#valueURL é relativo ou absoluto. A ferramenta Javadoc distingue isso de outros casos, procurando por um símbolo menor que ( <) como o primeiro caractere.

Por exemplo : @see <a href="http://www.google.com">Google</a>

Aaron
fonte
Esquisito; Juro que só adicionei as costas; Eu não sei onde o exemplo foram para ...
Stobor
Acho que tivemos algum tipo de problema de edição simultâneo. Eu estava colocando eles também.
Aaron
Justo. Você está perdendo os acentos graves na primeira linha do seu blockquote, embora ....
Stobor
27
@see não é necessário. Os javadocs podem ser formatados com tags html, portanto, é necessária apenas a tag "a".
Gabriel Llamas
5
@GabrielLlamas É verdade, mas a pergunta original implica que é assim que está sendo usada. É útil saber que especificamente faz o trabalho em um campo see-também, que é onde um monte de gente vai querer isso.
Ionoclast Brigham 01/09/2015
33

Os Javadocs não oferecem nenhuma ferramenta especial para links externos; portanto, você deve usar apenas o html padrão:

See <a href="http://groversmill.com/">Grover's Mill</a> for a history of the
Martian invasion.

ou

@see <a href="http://groversmill.com/">Grover's Mill</a> for a history of 
the Martian invasion.

Não use {@link ...}ou {@linkplain ...}porque estes são para links para os javadocs de outras classes e métodos.

Orlando DFree
fonte
16

Basta usar um link HTML com um elemento a como

<a href="URL#value">label</a>

Dr. Max Völkel
fonte
Apenas postou novamente a resposta correta, à medida que emergia dos outros comentários. Isso seria mais rápido de ler do que todo o tópico.
Dr. Max Völkel
4

Difícil encontrar uma resposta clara no site da Oracle. O seguinte é de javax.ws.rs.core.HttpHeaders.java:

/**
 * See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1">HTTP/1.1 documentation</a>}.
 */
public static final String ACCEPT = "Accept";

/**
 * See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2">HTTP/1.1 documentation</a>}.
 */
public static final String ACCEPT_CHARSET = "Accept-Charset";
Qiang Li
fonte
Qual é o significado de agrupar a <a>tag html com o {@link ...}?
Patrick M
2
Provavelmente, isso é um erro, porque a documentação do javadoc não menciona esse formulário, pois não faz diferença de um raw <a>.
Didier L
4
O {@link xxx} aqui não está certo. {@link xxx} serve para vincular a outras classes e métodos no seu código-fonte. É desnecessário aqui. O resto está bem.
MiguelMunoz 02/09/2015
4
Essa construção não é permitida pelos padrões Java 8 (doclint on).
Stepan Vavra
1
Isso está completamente errado. O uso correto de acordo com a referência e a documentação é{@link package.class#member label}
Dinei