Структура пакета для проекта Java? - PullRequest
101 голосов
/ 17 октября 2008

Каков наилучший способ настройки структур пакетов в веб-приложении Java?

Как бы вы настроили свой src, код модульного теста и т. Д.?

Ответы [ 6 ]

78 голосов
/ 17 октября 2008

Вы можете следовать стандартному макету проекта maven . Вам не обязательно использовать Maven, но в будущем это облегчит переход (при необходимости). Кроме того, другие разработчики привыкли видеть этот макет, так как многие проекты с открытым исходным кодом расположены таким образом,

54 голосов
/ 17 октября 2008

Существует несколько существующих ресурсов, которые вы можете проверить:

  1. Правильно упакуйте ваши классы Java
  2. Spring 2.5 Архитектура
  3. Учебник по Java - присвоение имени пакету
  4. Соглашения об именах SUN

Что бы это ни стоило, мои личные рекомендации, которые я склонен использовать, таковы:

  1. Начните с обратного домена, например, "Com.mycompany".
  2. Используйте название продукта, например, "MyProduct". В некоторых случаях я склонен иметь общие пакеты, которые не принадлежат конкретному продукту. Они будут в конечном итоге классифицированы в соответствии с функциональностью этих общих классов, например, «io», «util», «ui» и т. д.
  3. После этого он становится более свободным. Обычно я группирую в соответствии с проектом, областью функциональности, развертыванием и т. Д. Например, у меня может быть «project1», «project2», «ui», «client» и т. Д.

Пара других пунктов:

  1. В проектах, над которыми я работал, достаточно распространено, чтобы имена пакетов вытекали из проектной документации. Обычно продукты уже разделены на области функциональности или назначения.
  2. Не стоит слишком много внимания уделять распространению общей функциональности в более высокие пакеты сразу. Подождите, пока не возникнет необходимость в проектах, продуктах и ​​т. Д., А затем выполните рефакторинг.
  3. Просмотр зависимостей между пакетами. Они не все плохие, но это может означать тесную связь между тем, что может быть отдельными единицами. Существуют инструменты, которые могут помочь вам отслеживать это.
39 голосов
/ 01 августа 2010

Я бы предложил создать структуру вашего пакета по функциям, а не по уровню реализации. Хорошая статья об этом: Практика Java: пакет за функцией, а не слой

3 голосов
/ 10 октября 2015

Мне обычно нравится иметь следующее:

  • bin (Binaries)
  • Документ (Документы)
  • инф (Информация)
  • lib (библиотеки)
  • res (Ресурсы)
  • источник (источник)
  • tst (тест)

Это может считаться нетрадиционным, но я считаю, что это очень хороший способ организовать вещи.

1 голос
/ 14 октября 2018
The way I usually organise is
- src
        - main
                - java
                - groovy
                - resources
        - test
                - java
                - groovy
- lib
- build
        - test 
                - reports
                - classes
- doc
1 голос
/ 17 октября 2008

Как у меня обычно есть моя иерархия папок -

  • Название проекта
    • ЦСИ
    • бен
    • Тесты
    • libs
    • * 1014 документы *
...