【问题标题】:What are Best Practices for Maven Modules Naming?Maven 模块命名的最佳实践是什么?
【发布时间】:2010-08-18 07:03:44
【问题描述】:

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

-- project
  -- projectModule1
  -- projectModule2

现在我用另一个:

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

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

【问题讨论】:

    标签: maven-2 naming convention


    【解决方案1】:

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

    总结一下:

    首先,最重要的是你要始终如一。

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

    【讨论】:

      【解决方案2】:

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

      - 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
      

      【讨论】:

        【解决方案3】:

        你甚至可以更进一步:

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

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

        祝你有愉快的一天马克西姆

        【讨论】:

        • 好建议。但是,在这种命名策略中,我更愿意保留“-”字符来分隔嵌套模块。所以“project-module-1”意味着有父项目“project”,它有一个子项目“module”,它有一个子项目“1”。
        • 那么 project-module_1 将完成这项工作。
        猜你喜欢
        • 2022-11-10
        • 2017-09-29
        • 1970-01-01
        • 1970-01-01
        • 2014-01-22
        • 1970-01-01
        • 1970-01-01
        • 2012-08-19
        • 1970-01-01
        相关资源
        最近更新 更多