Maven 中的 GAVP 是指,GroupId、ArtifactId、Version、Packaging,
其中前三个是必要的,Packaging是可选的,
这四个属性,为每个项目在maven仓库做一个标识,方便maven软件对项目进行管理个相互引用
GroupId
GroupId:
格式:com.{ 公司 / BU }.业务线.{ 子业务线 } ,最多4段
如:com.taobao.tdd、com.alibaba.sourcing.mutilang、com.atguidgu.java
注:groupId,代表项目的组织或公司,不会频繁改变
ArtifactID
ArtifactID:
格式:产品线名-模块名
如:tc-client、uic-api、tair-tool、bookstore
注:artifactId,代表项目的具体模块或应用,不会频繁改变
Version
Version:
版本号格式推荐:主版本号.次版本号.修订号
主版本号:当做了不兼容api修改,或增加了能改变产品方向的新功能
次版本号:当做了向下兼容的功能性新增(新增类、接口等)
修订号:修复bug
如:
初始时:1.00、修改bug:.0.1、功能调整:1.1.1
注:版本号,在构建、部署过程中可能会频繁修改,特别是SNAPSHOT版本
Packaging
Packaging:
指示将项目打包成什么类型的文件,idea根据packaging的值,识别maven项目类型。
packaging 为 jar 时(默认值),代表普通的java工程,打包后是.jar结尾的文件
packaging 为 war 时,代表java的web过程,打包后是.war结尾的文件
packaging 为 pom 时,代表不会打包,用来做继承的工程
看个例子吧
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.atguigu</groupId>
<artifactId>studyone</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<jackson.version>2.16.2</jackson.version>
<junit.version>4.13.2</junit.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
</dependencies>
</project>