什么是Maven模块命名的最佳实践?

时间:2010-08-18 07:03:45

标签: maven-2 naming convention

假设我们有一个名为project和模块module1module2的项目,早些时候我倾向于使用以下命名策略:

-- project
  -- projectModule1
  -- projectModule2

现在我使用另一个:

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

Maven模块命名的最佳做法是什么?

3 个答案:

答案 0 :(得分:22)

我在“有效实施”一书中写了一些关于此的说明,但没有规则或规范惯例。

总结一下:

首先,最重要的是你是一致的。

General Maven约定使用' - '作为分隔符(commons-langmaven-model)。

如果您打算在外部使用它,请记住module = artifact ID = filename(在最佳实践中),因此需要识别它(maven-model-2.0.jar是明确的,model-2.0.jar不是)。在这种情况下,您通常会将组ID的最后一个元素重复为迷你命名空间。为简洁起见,“内部”模块可省略它(如示例应用程序所示:http://github.com/brettporter/centrepoint/tree/master/centrepoint/modules/)。

除此之外,我会尽量缩短它们。

您可以将Java包和类命名约定之间的并行绘制到Maven组和工件ID。

答案 1 :(得分:4)

我通常会尝试简化模块名称。如果名称“想要”很长,那表明另一个嵌套级别可能是个好主意。所以不要这样:

- 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 reactor选项,你仍然可以构建从顶部隔离的嵌套模块:

mvn -pl client/web clean install

答案 2 :(得分:2)

你甚至可以更进一步:

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

现在不开玩笑,这真是一个品味问题。

美好的一天马克西姆