web-dev-qa-db-fra.com

Javadoc dans JDK 8: "Élément à fermeture automatique non autorisé" non valide "

Quelles sont les meilleures solutions de contournement lors de l'exécution de javadoc à l'aide de JDK 8 et on reçoit cette erreur.

Il semble que pour JDK 8, il ait été décidé que des balises comme <br /> et <p /> devrait générer des erreurs, car elles ne sont pas valides (strictes) HTML 4. voir la discussion sur la liste de diffusion JDK ici

Je me demande, parce que je voulais juste compiler un Java utilisant maven et trébuché sur ce problème. Bien sûr, je peux déposer un ticket avec le projet (et je suppose que je le ferai), mais il serait formidable s'il y avait un moyen de désactiver ce comportement (pour une machine). Sinon, je m'attends à ce que beaucoup de projets doivent être corrigés avant de pouvoir être construits sur JDK 8 sans problèmes.

53
JE42

Pour ces deux cas particuliers, je pense que l'action recommandée est de les remplacer par <p>. This est le lien vers la documentation Oracle.

26
Tavo

Pour supprimer les erreurs dans javaDocs il suffit de remplacer:

  • <p/> avec juste <p>
  • <br/> avec juste <br>

Tout fonctionne bien après la correction de manière exceptionnelle.

18
Xelian

Tiré de " Quoi de neuf dans JDK 8 " d'Oracle.com:

L'outil javac prend désormais en charge la vérification du contenu des commentaires javadoc pour les problèmes pouvant entraîner divers problèmes, tels que du HTML non valide ou des problèmes d'accessibilité, dans les fichiers générés lors de l'exécution de javadoc. La fonction est activée par la nouvelle option -Xdoclint. Pour plus de détails, voir la sortie de l'exécution de "javac -X". Cette fonctionnalité est également disponible dans l'outil javadoc et y est activée par défaut.

Maintenant, j'ai fait ce qu'il m'a dit de faire. Sur JDK 7, la sortie de "javac -X" ne mentionne pas l'option -Xdoclint. Cependant, sur JDK 8, cela donne:

 -Xdoclint:(all|none|[-]<group>)[/<access>]
    Enable or disable specific checks for problems in javadoc comments,
    where <group> is one of accessibility, html, missing, reference, or syntax,
    and <access> is one of public, protected, package, or private.

Exécutez donc l'utilitaire Javadoc comme suit:

javadoc.exe -Xdoclint:none <other options...>

Dans mon script, l'erreur que vous avez mentionnée a disparu en utilisant cette option.

13
Timmos

Bien qu'il soit possible de désactiver la vérification des erreurs avec l'option -Xdoclint, cela ne résout pas le problème, il masque simplement le problème. Pour créer des documents HTML4 valides, les substitutions suivantes sont correctes.

  • Remplacez les balises br à fermeture automatique par des balises br normales (<br /> avec <br>)
  • Remplacez les balises p vides par des balises br (<p /> avec <br>)
  • Assurez-vous que toutes les balises p ont un contenu et sont fermées (<p> ... avec <p> ... </p>)
2
Ralph Ritoch