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

Mak*_*kin 16 convention maven-2 naming

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

-- project
  -- projectModule1
  -- projectModule2
Run Code Online (Sandbox Code Playgroud)

现在我用另一个:

-- project
  -- project-module1
  -- project-module2
Run Code Online (Sandbox Code Playgroud)

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

Bre*_*ter 22

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

总结一下:

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

General Maven约定使用' - '作为分隔符(commons-lang,maven-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.


Sea*_*oyd 5

我通常尝试保持模块名称简短。如果名称“想”很长,则表明另一个嵌套级别可能是一个好主意。所以代替这个:

- root
    - api
    - impl
    - security
    - service-soap
    - service-rest
    - client-swing
    - client-web-html
    - client-web-mobile
Run Code Online (Sandbox Code Playgroud)

我将进一步嵌套:

- root
    - api
    - impl
    - security
    - service
        - soap
        - rest
    - client
        - swing
        - web
            - html
            - mobile
Run Code Online (Sandbox Code Playgroud)

通过maven反应器选项,您仍然可以构建与顶部隔离的嵌套模块:

mvn -pl client/web clean install
Run Code Online (Sandbox Code Playgroud)