Каковы рекомендации по именованию модулей Maven?

Предполагая, что у нас есть проект с именем project и модули module1 и module2, ранее я использовал следующую стратегию именования:

-- project
  -- projectModule1
  -- projectModule2

Сейчас использую другой:

-- project
  -- project-module1
  -- project-module2

Каковы наилучшие методы именования модулей Maven?


person Maksim Sorokin    schedule 18.08.2010    source источник


Ответы (3)


Я сделал несколько заметок по этому поводу в книге «Эффективная реализация», но там нет правил или канонических соглашений.

Подведем некоторые итоги:

Прежде всего, самое главное, чтобы вы были последовательны.

Общее соглашение Maven использует «-» в качестве разделителя (commons-lang, maven-model).

Если вы собираетесь использовать его извне, помните module = artifact ID = filename (наилучшая практика), поэтому он должен быть узнаваемым (maven-model-2.0.jar понятно, model-2.0.jar нет). В этом случае вы обычно повторяете последний элемент идентификатора группы как мини-пространство имен. Для краткости «внутренние» модули могут опустить его (как показано в примере приложения: http://github.com/brettporter/centrepoint/tree/master/centrepoint/modules/).

Кроме того, я бы сделал их как можно короче.

Вы можете провести параллель между соглашениями об именах пакетов и классов Java с идентификаторами групп и артефактов Maven.

person Brett Porter    schedule 18.08.2010

Обычно я стараюсь, чтобы имена модулей были краткими. Если имя «хочет» быть длинным, это указывает на то, что другой уровень вложенности, вероятно, является хорошей идеей. Итак, вместо этого:

- root
    - api
    - impl
    - security
    - service-soap
    - service-rest
    - client-swing
    - client-web-html
    - client-web-mobile

Я бы вложил вещи дальше:

- root
    - api
    - impl
    - security
    - service
        - soap
        - rest
    - client
        - swing
        - web
            - html
            - mobile

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

mvn -pl client/web clean install
person Sean Patrick Floyd    schedule 18.08.2010

Вы даже можете пойти еще дальше:

-- project
  -- project-module-1
  -- project-module-2

Без шуток, это действительно вопрос вкуса.

Добрый день Максим

person Boris Pavlović    schedule 18.08.2010
comment
Хорошее предложение. Однако в этой стратегии именования я бы предпочел резерв - символ для разделения вложенных модулей. Таким образом, проект-модуль-1 будет означать, что есть проект родительского проекта, у которого есть дочерний модуль проекта, у которого есть дочерний проект 1. - person Maksim Sorokin; 18.08.2010
comment
Тогда проект-модуль_1 выполнит эту работу. - person Boris Pavlović; 18.08.2010