Рекомендуемая структура каталогов управления версиями?

Я собираюсь использовать 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 

Надеюсь, что это поможет.