Вы быстро поймете, что JDK8 намного строже (по умолчанию), когда дело доходит до Javadoc. (ссылка - см. последнюю маркерную точку)
Если вы никогда не генерируете Javadoc, то, конечно, у вас не возникнут какие-либо проблемы, но такие вещи, как процесс выпуска Maven и, возможно, ваши сборки CI неожиданно потерпят неудачу, когда они отлично работают с JDK7. Все, что проверяет значение выхода инструмента Javadoc, теперь терпит неудачу. JDK8 Javadoc, вероятно, также является более подробным в терминах warnings
по сравнению с JDK7, но это не область действия здесь. Мы говорим о errors
!
Этот вопрос существует для сбора предложений о том, что с этим делать. Каков наилучший подход? Должны ли эти ошибки фиксироваться раз и навсегда в файлах исходного кода? Если у вас огромная база кода, это может быть очень много. Какие существуют другие варианты?
Вы также можете прокомментировать истории о том, что теперь не удается, что прошло бы раньше.
Истории ужасов о том, что сейчас терпит неудачу
инструменты wsimport
Инструмент wsimport
- это генератор кода для создания веб-сервисов. Он включен в JDK. Даже если вы используете инструмент wsimport
из JDK8, он все равно будет генерировать исходный код который не может быть скомпилирован с помощью javadoc-компилятора из JDK8.
тег @author
Я открываю файлы исходного кода 3-4 года и вижу это:
/**
* My very best class
* @author John <[email protected]>
*/
Теперь это не удается из-за < персонаж. Строго говоря, это оправдано, но не очень прощает.
Таблицы HTML
Таблицы HTML в вашем Javadoc? Рассмотрим этот допустимый HTML:
/**
*
* <table>
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
Теперь это сообщение об ошибке с сообщением об ошибке no summary or caption for table
. Одно быстрое решение состоит в следующем:
/**
*
* <table summary="">
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
но почему это должно быть ошибкой Stop-the-world от инструмента Javadoc, меня бьет?
Вещи, которые теперь терпят неудачу по более очевидным причинам
- Неверные ссылки, например.
{@link notexist}
- Отформатированный HTML-код, например.
always returns <code>true<code> if ...
UPDATE
Ссылки:
Отличный блог по теме Стивен Коулборн.