Maven工件的命名约定 [英] Naming convention for Maven Artifacts

查看:162
本文介绍了Maven工件的命名约定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们目前正在尝试淡化我们公司中的现有项目.我们已经执行了POC,目前正在记录我们的学习和准则.我为Maven工件提出了以下命名约定.请在同一页面上分享您的评论

We are currently trying to mavenize the existing projects in our company. We have executed a POC and are currently documenting our learnings and guidelines. I have come up the following naming convention for the maven artifacts. Please share your comments on the same

注意:在我们公司中,项目名称始终是唯一的

Note: In our company, projectname is always unique

  • groupId:org.companyname.projectname
  • artifactId:org.companyname.projectname
  • 版本:x.x.x

例如:org.companyname.projectname:org.companyname.projectname-1.0.0.pom

eg : org.companyname.projectname:org.companyname.projectname-1.0.0.pom

  • groupId:org.companyname.projectname
  • artifactId:org.companyname.projectname.modulename
  • 版本:x.x.x

例如:org.companyname.projectname:org.companyname.projectname.modulename-1.0.0.jar

eg: org.companyname.projectname:org.companyname.projectname.modulename-1.0.0.jar

  • groupId:org.companyname.projectname
  • artifactId:org.companyname.projectname
  • 版本:x.x.x

例如:org.companyname.projectname:org.companyname.projectname-1.0.0.pom

eg : org.companyname.projectname:org.companyname.projectname-1.0.0.pom

  • groupId:org.companyname.projectname
  • artifactId:org.companyname.projectname.subcategory
  • 版本:x.x.x

例如:org.companyname.projectname:org.companyname.projectname.subcategory-1.0.0.pom

eg : org.companyname.projectname:org.companyname.projectname.subcategory-1.0.0.pom

  • groupId:org.companyname.projectname
  • artifactId:org.companyname.projectname.subcategory.modulename
  • 版本:x.x.x

例如:org.companyname.projectname:org.companyname.projectname.subcategory.modulename-1.0.0.jar

eg : org.companyname.projectname:org.companyname.projectname.subcategory.modulename-1.0.0.jar

推荐答案

IMO,您无需在artifactId中包含org.companyname-它只是复制groupId中已经存在的信息,因此使工件名称更长且可读性更差

IMO you need not include org.companyname in the artifactId - it is just duplicating the information already present in the groupId, thus making the artifact names longer and less readable.

更新:仅供参考,通过查看我们项目的依赖关系,我可以看到很多类似的示例,例如

Update: FYI, looking through the dependencies of our project, I see plenty of similar examples, e.g.

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>

<groupId>org.codehaus.mojo</groupId>
<artifactId>jboss-maven-plugin</artifactId>

<groupId>net.sf.barcode4j</groupId>
<artifactId>barcode4j-fop-ext-0.20.5-complete</artifactId>

<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>

<groupId>opensymphony</groupId>
<artifactId>oscache</artifactId>

<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-libs</artifactId>

<groupId>javax.resource</groupId>
<artifactId>connector-api</artifactId>

<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>

<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>

然后在很多情况下,组ID和工件ID都是相同的非限定名称,例如:

And then there are many where the group and artifact IDs are the same unqualified name, e.g.:

<groupId>log4j</groupId>
<artifactId>log4j</artifactId>

<groupId>velocity</groupId>
<artifactId>velocity</artifactId>

<groupId>fop</groupId>
<artifactId>fop</artifactId>

<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>

但是我还没有看到任何具有完全限定的组ID和相同的工件ID(例如,对于Log4J为org.apache.log4j:org.apache.log4j).

But I haven't seen any having a fully qualified group ID and an identical artifact ID (which e.g. for Log4J would be org.apache.log4j:org.apache.log4j).

这篇关于Maven工件的命名约定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆