Рекомендуемая структура каталогов системы контроля версий?
Я собираюсь использовать Subversion для контроля исходного кода в новом веб-приложении J2EE. Какую структуру каталогов вы порекомендуете для организации кода, тестов и документации?
4 ответа
У меня обычно есть
Каталог проектов источник - фактический источник документация lib - библиотеки, на которые ссылаются из источника dep - установочные файлы для зависимостей, которые не вписываются в lib db - скрипт установки базы данных
В работе с Visual Studio я не уверен, что это работает так же в мире Java. Но я обычно кладу вещи в разные папки проекта в src. Для каждого исходного проекта есть отдельный тестовый проект. Файлы сборки идут в основной каталог проекта. Я также обычно помещаю README, документирующий, как настроить проект, если ему нужно больше, чем просто проверить.
РЕДАКТИРОВАТЬ: Это структура для одной рабочей проверки проекта. Он будет продублирован для каждой ветви / тега в вашей системе контроля версий (помните, что в большинстве систем SVN копии дешевы). Пример выше под Subversion будет выглядеть так:
/project
/trunk
/src
/doc
/...
/branches
/feature1
/src
/doc
/...
/feature2
/src
/doc
/...
Я нашел здесь несколько старых вопросов о SO, которые могут быть вам интересны:
Чтобы расширить то, что предложил Мендель Зибенга, я бы также добавил web
каталог (для файлов JSP, WEB-INF, web.xml и т. д.).
Тесты должны идти в папке с именем test
это родной брат src
папка - таким образом ваши классы модульного тестирования могут иметь то же имя пакета, что и тестируемый исходный код (для облегчения ситуаций, когда вы хотите протестировать защищенные методы или классы, например... см. JUnit FAQ для этого и этот вопрос также на Где я должен положить свои тестовые файлы?).
Я сам мало что использовал, но проект Maven также создаст resources
папка рядом с папкой src для не исходного кода, который вы хотите упаковать / развернуть вместе с основным исходным кодом - такими вещами, как файлы свойств, пакеты ресурсов и т. д. Ваш пробег может варьироваться в зависимости от этого.
Я использую Eclipse для создания веб-приложений J2EE, и это создаст следующую структуру проекта:
WebAppName\
\lib
\src
\tests
etc...
Затем я бы создал папку SVN в нашем транке под названием WebAppNameProject. В этой папке я буду создавать папки с именами WebAppNameSource, Documentation и т. Д. В папке WebAppNameSource я буду размещать источник проекта, сгенерированный Eclipse. Таким образом, я бы имел следующую структуру папок в SVN:
\svn\trunk\WebAppNameProject
\WebAppNameSource
\lib
\src
\tests
etc...
\Documentation
Надеюсь это поможет.