Maven工件和组命名约定[重复]

Posted

技术标签:

【中文标题】Maven工件和组命名约定[重复]【英文标题】:Maven artifact and group naming conventions [duplicate] 【发布时间】: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 个模块并且无法构建项目所以区分大小写似乎是特定于平台的 【参考方案1】:

在这种情况下,我建议:

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

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

对于 artifactId 考虑:

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

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

【讨论】:

谢谢。很好的解释,虽然似乎有另一个问题回答了我的问题,但它没有详细说明或回答我的具体问题......你做到了......谢谢

以上是关于Maven工件和组命名约定[重复]的主要内容,如果未能解决你的问题,请参考以下文章

SonarQube 和 JaCoCo (maven) 命名约定

Python命名约定-namedtuples [重复]

html/css + MVC 的命名约定?

重命名存档工件的容器

Google C++项目命名约定

命名空间命名约定