maven-2 - Maven 工件的命名约定

标签 maven-2 naming-conventions

我们目前正在努力使公司现有的项目更加自动化。我们已经执行了 POC,目前正在记录我们的经验和指南。我为 Maven 工件提出了以下命名约定。请分享您的评论

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

对于单级多模块 Maven 项目

父级(pom)

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

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

模块(jar)

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

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

对于多级多模块 Maven 项目

父级(pom)

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

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

子父级 (pom)

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

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

模块(jar)

  • 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

最佳答案

IMO,您不需要在artifactId中包含org.companyname - 它只是复制groupId中已经存在的信息,从而使artifact名称更长且可读性较差。

更新:仅供引用,查看我们项目的依赖项,我看到很多类似的示例,例如

<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 是相同的非限定名称,例如:

<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)。

关于maven-2 - Maven 工件的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3150003/

相关文章:

eclipse - 传输依赖失败,已缓存在本地存储库中

java - Maven 离线 - mvn-plugins 的问题

java - 在 Maven 中将一个属性分配给另一个属性

maven-2 - Maven 本地存储库

c - 区分 C 中特定于实现的类型和变量

java - 项目、文件夹、包应该放什么

javascript - 在一个函数中定义 var 以应用于其他函数

java - Nexus/Maven 可以同时存储 32 位和 64 位工件吗?

ios - #define 或 const 字符串*

java - 是否应该为 Java 中的线程命名以便于调试?