Плюсы и минусы версий Javadoc - PullRequest
6 голосов
/ 07 апреля 2011

Мне интересно, нужно ли фиксировать файлы Javadoc в хранилище SVN моего проекта.

Я читал о передовых практиках SVN, включая несколько интересных вопросов по SO, но ни один из них не был задан специально для обработки javadoc.

Сначала я согласился с аргументами о том, что версировать должен только исходный код, и подумал, что javadoc действительно легко перестроить с помощью Eclipse или, например, из файла javadoc.xml ant. , но я тоже думал об этих пунктах:

  • Файлы Javadoc имеют легкий текстовый код, и изменения в этих файлах легко отслеживаются с помощью инструментов сравнения.
  • Представляется интересным легко отслеживать изменения в javadoc, поскольку в случае "публичного" javadoc любое его изменение, вероятно, будет означать изменение в API.
  • Люди, желающие взглянуть на javadoc, не обязательно хотят получить весь проект и скомпилировать его, поэтому размещение его в репозитории кажется такой же хорошей идеей, как и другая, для эффективного обмена / отслеживания.

Что вы думаете об этом? Пожалуйста, ответьте конструктивными, не субъективными аргументами. Меня интересует понимание того, какие сценарии поощрения создания версий Javadoc, а какие - плохой выбор.

Ответы [ 4 ]

4 голосов
/ 07 апреля 2011

Один аргумент против - конфликты слияний, и как бывший пользователь SVN я ненавижу слияние с SVN. Даже с Git это просто еще один шаг работы, если такие проблемы возникают. И если вы в большой команде, регулярные слияния - это ежедневная работа.

Другим аргументом против будет, если некоторые люди не хотят целого дерева исходных текстов, поместить весь проект в какую-либо систему CI, такую ​​как Hudson, и запускать создание Javadoc на регулярной основе, например коммиты, и публиковать их где-нибудь .

Заключение для меня: не делайте версию Javadocs.

2 голосов
/ 08 апреля 2011

Недавно я добавил некоторые выходные данные javadoc в систему контроля версий (поскольку github отображает содержимое ветви gh_pages как веб-сайт, это был самый простой способ разместить их в Интернете ).

Одна из проблем здесь заключается в том, что javadoc вставляет в каждый файл дату / время запуска javadoc, поэтому у вас всегда есть изменения всех ваших файлов с одного коммита на следующий. Поэтому не ожидайте, что у вас будет полезный diff, который покажет вам, какая документация действительно изменилась между вашими версиями, если вам не удастся каким-то образом игнорировать эти строки комментариев при дифференцировании. (На самом деле, из-за другого вопроса я узнал, как опустить метку времени.)

И, конечно, вы всегда должны иметь возможность восстановить свой Javadoc из проверки старых источников. А для выпущенных библиотек опубликуйте вместе с ним javadoc выпущенной версии.

Для сторонних библиотек, которые вы используете внутри своего проекта в качестве jar-файлов (или всего, что вы сами не компилируете), может быть полезно сохранить javadoc, соответствующий версии, используемой внутри дерева исходных текстов (и, таким образом, версированный тоже) хотя. (При использовании Maven вы обычно можете скачать javadoc jar вместе с работающим jar библиотеки, поэтому он не применяется.)

1 голос
/ 07 апреля 2011

Мои два цента ...

Я не знаю, сколько раз я ЖЕЛАЛ, чтобы у меня были старые версии Javadocs. Например, я могу использовать старую версию сторонней библиотеки, но документы API для этой библиотеки основаны на текущем коде. Все хорошо, если вы используете текущий код, но если вы используете более старую версию, Javadocs может фактически ввести вас в заблуждение относительно того, как использовать рассматриваемый класс.

Вероятно, это скорее проблема с библиотеками, которые вы распространяете, чем с вашим собственным внутренним кодом, но я сталкиваюсь с этим время от времени

1 голос
/ 07 апреля 2011

Краткий ответ: нет, не делайте версии своих Javadocs.

Javadocs генерируются из вашего кода, аналогично вашим файлам .class.Если ваш API изменяется, и вам нужно выпустить новую версию документов, вы всегда можете вернуться к этой ревизии (или сделать новую проверку) и сгенерировать Javadocs оттуда.

...