【问题标题】:Maven artifact and group naming conventions [duplicate]Maven工件和组命名约定[重复]
【发布时间】:2014-06-04 01:16:36
【问题描述】:

我正在尝试找出 Maven 的最佳命名约定。例如,我正在创建一个 Web 服务(使用 Jersey),例如,我的域是 mydomain.com

我的产品名称是 ProfitHorse。那么最好将 groupid 与我的反向 dns 名称放在一起并像这样添加 ProfitHorse

com.mydomain.profithorse

工件将是模块的实际名称,在这种情况下它是 Jersey REST 服务,类似于

rest-service

如果我有更多模块可以使用相同的 groupId,但只需更改工件,即

email-server

在单词之间使用-(破折号)是一种好习惯吗?我想这不是 区分大小写,因此使用驼峰式大小写或 Pascal 大小写不会真正起作用。

我对约定有点困惑。

【问题讨论】:

  • 关于区分大小写:我目前遇到一个项目的问题,其中 2 个模块具有相同的 artifactIds 但大小写不同。在 Linux 上,项目的构建就像一个魅力在 Windows 上,Maven 混淆了 2 个模块并且无法构建项目所以区分大小写似乎是特定于平台的

标签: java maven jersey naming-conventions


【解决方案1】:

在这种情况下,我建议:

groupId:反向域名+项目名,点分隔,全部小写:com.mydomain.profithorse

artifactId:项目名称+组件,用破折号分隔,全部小写: profithorse-server-serviceprofithorse-server-service-restprofithorse-server-rest

对于 artifactId 考虑:

  • artifactId 将定义 jar 名称。这就是为什么我建议也添加项目名称,否则你最终会得到一个 rest-service-<version>.jar - 不是很具有描述性
  • 使用尽可能多的组件部件,以便轻松查看它提供的内容。
    • 您有服务器和客户端模块吗?
    • 你们有几种服务?还是休息?
    • 每个功能的垂直分层是否有意义?然后还将功能名称添加到 artifactId

我猜 Maven 坐标区分大小写,但我不确定。我建议始终使用小写名称。

【讨论】:

  • 谢谢。很好的解释,虽然似乎有另一个问题回答了我的问题,但它没有详细说明或回答我的具体问题......你做到了......谢谢
猜你喜欢
  • 2011-03-10
  • 2018-01-03
  • 2021-12-26
  • 2010-10-13
  • 2012-02-15
  • 2019-10-27
  • 2011-01-08
  • 2016-07-22
  • 2014-10-24
相关资源
最近更新 更多