Мне трудно читать новый внешний вид в JDK8 Javadoc по сравнению с JDK7. Вот соседний пример.
JDK7:
JDK8:
JDK8 занимает значительно больше места. Теперь он использует шрифт DejaVu там, где ранее использовался Arial. Для этого могут быть веские причины. Не знаю.
Моя самая большая проблема в разделах "Параметры" и "Броски", где больше нет визуального различия между аргументом и его описанием. Они оба в монофоническом шрифте. Я думаю, что писать описательный текст монофоническим шрифтом просто некрасиво. Моно-интервальный шрифт предназначен для имен идентификаторов, списков исходного кода и тому подобного. (не стесняйтесь не соглашаться).
Могу ли я вернуть стиль JDK7, продолжая использовать инструмент JDK8 javadoc?
Я надеялся на что-то вроде javadoc -stylesheet jdk7.css
где jdk7.css
было чем-то, включенным в JDK8. Также, если я решу настроить CSS самостоятельно (это не мое дело, но другого решения может не быть), я бы не хотел обеспечивать доступность новой таблицы стилей на каждом сервере сборки на нашем предприятии. Возможно, есть решение Maven для этого?
ВОЗМОЖНОЕ РЕШЕНИЕ?
Было предложено (ниже) использовать Javadoc css JDK7 с инструментом Javadoc JDK8, чтобы увидеть, приведет ли это к возвращению некоторого подходящего Javadoc.
Я сделал свой тест, проверив исходный код из проекта Apache Commons Lang. Я использую только исходный код, а не их POM. Это для того, чтобы я знал, что работаю на правильной основе.
Хорошо, сначала - для справки - здесь Javadoc, который был создан с помощью всего набора инструментов JDK7 (инструмент JDK7 javadoc, JDK7 css). Вот фрагмент POM:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<stylesheetfile>${basedir}/src/main/css/jdk7javadoc.css</stylesheetfile>
<javadocExecutable>C:/Program Files/Java/jdk1.7.0_55/bin</javadocExecutable>
</configuration>
</plugin>
</plugins>
</build>
и получившийся Javadoc:
Затем попытка использовать JDK7 css с инструментом JDK8 javadoc. Вот фрагмент POM:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<stylesheetfile>${basedir}/src/main/css/jdk7javadoc.css</stylesheetfile>
<javadocExecutable>C:/Program Files/Java/jdk1.8.0_05/bin</javadocExecutable>
</configuration>
</plugin>
</plugins>
</build>
и получившийся Javadoc:
Итак, как видите, эта стратегия не сработала для меня.
ОБНОВИТЬ
Я только что понял, что следствием этого изменения является то, что стало бессмысленно использовать разметку {@code }
(или <code>
) в описаниях параметров. Это не показывает в любом случае. Другими словами, если вам нравилось делать это в прошлом:
/**
* ...
* @param eName the name for the entity or <code>null</code> to use the default
* ...
*/
в этом просто нет смысла. Ваш null
текст не будет выделяться в любом случае.
ОБНОВЛЕНИЕ 2019-04-19
Части проблем, упомянутых выше, были исправлены в JDK-8072052: часть <dd> списка <dl> в javadoc не должна быть моноширинным шрифтом. Исправлено в Java 9 и выше, не перенесено в Java 8.