Вы быстро поймете, что 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
Ссылки:
Отличный блог по теме Стивен Коулборн.
