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

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

Чтобы расширить то, что предложил Мендель Зибенга, я бы также добавил 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 

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

Другие вопросы по тегам