17

假设我们有一个名为projectmodules module1and的项目module2,之前我倾向于使用以下命名策略:

-- project
  -- projectModule1
  -- projectModule2

现在我使用另一个:

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

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

4

3 回答 3

24

我在“有效实现”一书中对此写了一些注释,但没有规则或规范约定。

总结一些:

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

一般 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 相提并论。

于 2010-08-18T12:49:46.267 回答
5

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

- 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
于 2010-08-18T15:07:47.727 回答
1

你甚至可以更进一步:

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

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

祝你有美好的一天马克西姆

于 2010-08-18T07:34:34.310 回答