139 votes

JDK8 et Javadoc est devenue très stricte

Vous vous rendrez vite compte que JDK8 est beaucoup plus strictes (par défaut) quand il s'agit de Javadoc. (lien - voir le dernier point)

Si vous n'avez jamais générer de Javadoc alors bien sûr, vous serez rencontrez pas de problèmes mais des choses comme Maven processus de libération et, éventuellement, votre CI construit un coup d'échouer là où ils ont travaillé très bien avec JDK7. Tout ce qui vérifie la valeur de sortie de l'outil Javadoc va échouer. JDK8 Javadoc est probablement aussi la plus dense en terme de warnings par rapport à JDK7 mais ce n'est pas le champ d'application ici. Nous parlons errors!

Cette question existent pour recueillir des propositions sur ce qu'il faut faire à ce sujet. Quelle est la meilleure approche ? Si ces erreurs sont fixés une fois pour toutes dans les fichiers de code source? Si vous avez une énorme base de code de cela peut être beaucoup de travail. Quelles sont les autres options existent ?

Vous êtes également invités à formuler des commentaires avec des histoires de ce qui échoue désormais qui auparavant passer.

Des histoires d'horreur de ce qui échoue désormais

wsimport outils

wsimport outil est un générateur de code pour la création de web service consommateurs. Il est inclus dans le JDK. Même si vous utilisez l' wsimport outil de JDK8 il sera néanmoins produire le code source qui ne peut pas être compilé avec la javadoc compilateur de JDK8.

@l'auteur de la balise

Je suis à l'ouverture des fichiers de code source 3-4 ans et de voir ceci:

/**
 * My very best class
 * @author John <john.doe@mine.com> 
 */

Maintenant cela échoue en raison du caractère<. Strictement parlant, c'est justifié, mais pas très indulgent.

Les tableaux HTML

Les Tableaux HTML dans votre Javadoc? Considérez ceci valide en HTML:

/**
 *
 * <table>
 *   <tr>
 *      <td>Col1</td><td>Col2</td><td>Col3</td>
 *   </tr>
 * </table>
 */

Maintenant cela échoue avec le message d'erreur no summary or caption for table. Une solution rapide est de faire comme ceci:

/**
 *
 * <table summary="">
 *   <tr>
 *      <td>Col1</td><td>Col2</td><td>Col3</td>
 *   </tr>
 * </table>
 */

mais pourquoi cela doit être un cessez-le-monde d'erreur à partir de l'outil Javadoc me bat??

Choses que maintenant échouer pour plusieurs raisons évidentes

  1. Les liens invalides, par exemple, {@link notexist}
  2. Code HTML mal formé, par exemple, always returns <code>true<code> if ...

Mise à JOUR

Liens:

Un Excellent blog sur le sujet par Stephen Colebourne.

55voto

assylias Points 102015

Si vous utilisez le plugin de javadoc maven, vous pouvez utiliser le `` option pour l’empêcher de s’arrêter si elle constate des erreurs html :

Ou vous pouvez désactiver les options html strict complètement avec :

Pour plus d' info.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X