Я хотел бы иметь возможность программно преобразовывать комментарии Javadoc (например, в сгенерированном коде LWJGL ) в другие форматы (например, Markdown ). Это позволило бы мне делать такие вещи, как автоматическое создание идиоматической оболочки Clojure для LWJGL с удобочитаемыми строками документации.
Я могу выбрать комментарии Javadoc из исходного файла с помощью JavaParser , но здесь я застреваю. Ответы на эти два вопроса Stack Overflow от 2011 и 2013 годов рекомендуют использовать Doclet API , но согласно ответу на этот вопрос от 2015 года:
Классы в
com.sun.tools.*
пакетах следует рассматривать как внутренние API. В документации по Java есть четкие предупреждения о том, что вы не должны писать код, противоречащий этим API.Например:
- Почему разработчикам не следует писать программы, вызывающие «солнечные» пакеты
- Закрытие закрытых API
В Java 8 заголовок класса, который пытается использовать ваш код, говорит:
Это НЕ является частью какого-либо поддерживаемого API. Если вы пишете код, который зависит от этого, вы делаете это на свой страх и риск. Этот код и его внутренние интерфейсы могут быть изменены или удалены без предварительного уведомления.
(выделено в оригинале!)
Это не сказано в Java 7 (ой!) Действительно, есть версии часто задаваемых вопросов по Javadoc, которые, кажется, поощряют людей повторно использовать стандартные классы doclet. К сожалению, Oracle решила закрыть эти классы, а также внесла некоторые критические изменения в API, которые усиливают это, независимо от того, было ли это намерением изменений.
Поиск в Google по запросу «Javadoc parser» не дал ничего, кроме самого Doclet. Поскольку Doclet не поддерживается, мне кажется, что лучшим способом решить мою проблему было бы написать библиотеку разбора Javadoc самостоятельно. Однако мне кажется неправдоподобным, что такого уже не существовало бы. Я не эксперт по Javadoc; возможно, не существует стандартного «формата Javadoc», и вопрос «как я могу разобрать Javadoc» некорректен .
Я хотел бы библиотеку Java, которая
"/** foo */"
) и возвращает своего рода дерево синтаксического анализаtools.jar
)Существует ли поддерживаемая библиотека синтаксического анализа Javadoc или мне следует написать ее самостоятельно?
Существует проект doc2java, который поддерживает это:
Существует также поисковая система, которая может размещать JavaDocs и делать их доступными для поиска.
использованная литература
пользователь 207421
sun.*
пакеты, о которых есть известное предупреждение, сcom.sun.*
пакетами, о которых его нет.com.sun.*
Например, было бы невозможно написать программу JNDI без использования .Сэм Эстеп
tools.jar
который включает в себяcom.sun.javadoc.*
, «не может быть распространен». Итак, как я могу распространять приложение, которое зависит отcom.sun.javadoc.*
? Или это не тот пакет, который мне понадобится для программного анализа комментариев Javadoc?ЭДП
Сэм Эстеп
ЭДП
Сэм Эстеп
Ира Бакстер
Сэм Эстеп
Ира Бакстер
Сэм Эстеп