2013-12-03 2 views
7

Я хотел бы документировать некоторые свойства классов и методов в JavaDoc и иметь возможность загружать эту информацию во время выполнения. Поэтому я подумал, что было бы удобно писать пользовательскую аннотацию и аннотировать все необходимые файлы и методы с помощью этой аннотации. С помощью этой аннотации я могу загрузить эту информацию во время выполнения.Как включить @Annotations в JavaDoc?

Вот гипотетическая фрагмент кода, чтобы продемонстрировать свою случай использования:

Строка "originated from data source XYZ" должна отображаться в JavaDoc и быть читаемым с помощью отражений или что-то подобное. Моя проблема в том, что JavaDoc не содержит аннотационной информации.

Можно ли настроить задачу JavaDoc (желательно с Maven), чтобы включить информацию аннотации?

Уточнение: меня не интересуют доклеты (аннотации ~ javadoc), поскольку они не читаются во время выполнения.

+0

возможно дубликат (http://stackoverflow.com/questions/1168080/is-there-a- way-to-get-the-javadoc-tool-to-document-annotations) –

ответ

8

Наконец-то я нашел хорошее решение без дублирования. В этом случае используйте аннотацию @Documented на интерфейсе аннотации (DetailedDescription), и все экземпляры этой аннотации документируются в JavaDoc. Смотрите этот вопрос: [? Есть ли способ, чтобы получить инструмент JavaDoc к документу аннотаций]

Is there a way to get the javadoc tool to document annotations?

2

Это больше комментариев, чем ответ, но это долго, так что мне нужен этот формат

Почему вы хотите аннотацию для этого? В Oracle documentation говорится, что для такого использования вы должны использовать как тег javadoc, так и аннотацию. Из ссылки я предоставил:

Если вам необходимо повлиять как на семантику программы, так и на документацию, вам, вероятно, потребуется как аннотация, так и тег. Например, наши рекомендации в настоящее время рекомендуют использовать аннотацию @Deprecated для оповещения предупреждения компилятора и @Deprecated тег для текста комментария

+1

Благодарим за подсказку. Я хотел бы сохранить информацию только в одном месте, но это кажется невозможным. – guerda

-2

Используйте Javadocs, он обеспечивает именно то, что вы пытаетесь достичь. Аннотации предоставляют метаданные на уровне кода и предназначены для того, чтобы играть роль в поведении вашего приложения. Не следует использовать для документации.

+0

Один случай, который приводит меня к этому вопросу, заключается в том, чтобы javadoc включал «соответствующие» метаданные, в моем случае JAX-RS аннотации, чтобы избежать дублирования. – Mirvnillith

Смежные вопросы