MAVEN中的GROUP ID与ARTIFACTID

GroupID和ArtifactID

在每次建立maven web项目的时候,选好web文件,到填写group Id与ArtifactId的时候就懵逼了,这篇文章,主要是关于怎么对group Id与ArtifactId方式,以解决困扰自己的长期问题

  • GroupID 是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构
  • ArtifactID是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

1、基础知识必备

<groupId>com.yucong.commonmaven</groupId> 
<artifactId>commonmaven</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 
<name>common_maven</name> 
  • groupid:定义了项目属于哪个组,举个例子,如果你的公司是mycom,有一个项目为myapp,那么groupId就应该是com.mycom.myapp.
  • artifacted :定义了当前maven项目在组中唯一的ID,比如,myapp-util,myapp-domain,myapp-web等
  • version :指定了myapp项目的当前版本,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本 
  • name :声明了一个对于用户更为友好的项目名称,不是必须的,推荐为每个pom声明name,以方便信息交流

 2、何为mave坐标

maven的世界中拥有数量非常巨大的构件,也就是平时用的一些jar,war等文件。 
maven定义了这样一组规则: 
世界上任何一个构件都可以使用Maven坐标唯一标志,maven坐标的元素包括groupId, artifactId, version,package,classifier。 
只要在pom.xml文件中配置好dependancy的groupId,artifact,verison,classifier, 
maven就会从仓库中寻找相应的构件供我们使用。那么,"maven是从哪里下载构件的呢?" 
答案很简单,maven内置了一个中央仓库的地址(http://repol.maven.org/maven2),该中央仓库包含了世界上大部分流行的开源项目构件,maven会在需要的时候去那里下

3、其他文件解释

  • packaging【可选的,默认为jar】: 当不定义packaging时,maven会使用默认值jar。
  • classifier: 该元素用来帮助定义构件输出的一些附属构件。 
  • 项目构件的文件名是坐标相对应的,一般的规则为:artifact-version.packing

以上参考资料:https://blog.csdn.net/zhangxingyu126/article/details/81013315

命名规则

在Java开发手册中,GroupIDArtifactID被规到工程结构中的二方依赖库里的内容,现主要内容摘抄如下

定义GAV(GroupID、ArtifactID、Version)遵从以下原则

1、GroupID格式:com.{公司/BU}.业务线.[子业务线],最多四级

说明:{公司/BU},例如,alibaba/taobao/tmall/aliexpress等BU一级,子业务线可选

正例: com . taobao . jstorm 或 com.alibaba.dubbo.register

2、 ArtifactID 格式:产品线名-模块名。语义不重复不遗漏,先到中央仓库去查证一下

正例: dubbo - client / fastjson - api / jstorm - tool

3、Version命名方式:主版本号.次版本号.修订号

修订号 修订号:修复 bug ,没有修改方法签名的功能加强,保持 API 兼容性。
说明:注意:起始版本号必须为: 1.0.0 ,而不是 0.0.1 正式发布的类库必须先去中央仓库进行查证,使版本号有延续性,正式版本号不允许覆盖升级。如当前版本:1.3.3,那么下一个合理的版本号:1.3.4 或 1.4.0 或 2.0.0

结构显示

如图所示,我的groupId是:com.mycom.app,artifactId是app-util,项目名称显示的是去掉中间-的artifactId即apputil

猜你喜欢

转载自www.cnblogs.com/lindaiyu/p/10922277.html