Каковы лучшие практики для именования модулей Maven? - PullRequest
16 голосов
/ 18 августа 2010

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

-- project
  -- projectModule1
  -- projectModule2

Теперь я использую другое:

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

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

Ответы [ 3 ]

22 голосов
/ 18 августа 2010

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

Подведем итог:

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

Общее соглашение 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 и идентификаторами артефактов.

5 голосов
/ 18 августа 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
2 голосов
/ 18 августа 2010

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

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

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

Хорошего дня Максим

...