Рекомендуемая структура каталогов управления версиями?
Я собираюсь использовать Subversion для управления версиями в новом веб-приложении J2EE. Какую структуру каталогов вы порекомендуете для организации кода, тестов и документации?
Ответы
Ответ 1
Обычно у меня
Project Directory
src - actual source
doc - documentation
lib - libraries referenced from source
dep - installation files for dependencies that don't fit in lib
db - database installation script
В работе с Visual Studio я не уверен, что это работает в Java-мире. Но я обычно помещаю вещи в разные папки проекта в src. Для каждого исходного проекта есть отдельный тестовый проект. Файлы сборки входят в основной каталог проекта. Я обычно помещаю README там, где описано, как настроить проект, если ему нужно больше, чем просто проверить.
EDIT: Это структура для отдельной рабочей проверки проекта. Он будет дублироваться для каждой ветки/тега в вашей системе контроля версий (помните, что в большинстве систем SVN копии дешевы). Вышеприведенный пример под Subversion будет выглядеть так:
/project
/trunk
/src
/doc
/...
/branches
/feature1
/src
/doc
/...
/feature2
/src
/doc
/...
Ответ 2
Я нашел здесь несколько старых вопросов, которые могут быть вам интересны:
Ответ 3
Чтобы расширить то, что предложил Mendelt Siebenga, я бы также добавил каталог web
(для JSP файлов, WEB-INF, web.xml и т.д.).
Тесты должны проходить в папке с именем test
, которая является родственной главной папкой src
. Таким образом, ваши классы unit test могут иметь такое же имя пакета, что и тестируемый исходный код (чтобы облегчить ситуацию, когда вы хотите проверить защищенные методы или классы, например... см. JUnit FAQ для этого, и этот вопрос также относится к Где я должен поместить свои тестовые файлы?).
У меня для этого не было много пользы, но проект Maven также создаст папку resources
рядом с папкой src для неподходящего кода, который вы хотите упаковать/развернуть вместе с основным исходным кодом - вещи таких как файлы свойств, пакеты ресурсов и т.д. Ваш пробег может варьироваться в зависимости от этого.
Ответ 4
Я использую Eclipse для создания веб-приложений J2EE, и это создаст следующую структуру проекта:
WebAppName\
\lib
\src
\tests
etc...
Затем я создавал бы папку SVN на нашем телефоне под названием WebAppNameProject. В этой папке я создавал бы папки под названием WebAppNameSource, Documentation и т.д. В папке WebAppNameSource я бы разместил исходный код проекта, созданный Eclipse. Таким образом, у меня будет следующая структура папок в SVN:
\svn\trunk\WebAppNameProject
\WebAppNameSource
\lib
\src
\tests
etc...
\Documentation
Надеюсь, что это поможет.