Maven工程相对于之前的项目,多出一组gavp属性,gav需要我们在创建项目的时候指定,p有默认值,我们先行了解下这组属性的含义。
Maven中的GAVP是指GroupId,Artifactid,Version,Packaging等四个属性的缩写,其中前三个是必要的。而Packaging属性为可选项。这四个属性主要为每个项目在maven仓库中做一个标识,类似于人的姓名!有了具体标识,方便后期项目之间相互引用依赖等。
GAV遵循以下规则:
1. GroupID格式:com.{公司/BU}.业务线。{子业务线},最多4级。
说明:{公司/BU}例如:alibaba/apache等 BU一级:子业务线可选
2. ArtifactId格式:产品线名-模块名。语义不重复不遗漏,先到仓库中心去查证一下。
3. Version版本号格式推荐:主版本号.次版本号.修订号
1)主版本号:当作了不兼容的API修改,或者增加了能改变产品方向的新功能
2)次版本号:当做了向下兼容的功能性新增(新增类、接口等)。
3)修订号:修复bug,没有修改方法签名的功能加强,保持API兼容性。
例如:初始-->1.0.0 修改bug-->1.0.1 功能调整 -->1.1.1 等
举例:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>3.1.2</version>
</dependency>
当我们想要创建一个project的时候,也会在pom.xml里面生成该项目的坐标。
如果别人需要依赖这个项目的某些功能时,添加对应的依赖即可。
4. Packaging 定义规则
指示将项目打包成什么类型的文件,idea根据packaging值,识别maven项目类型。
packaging属性为jar(默认值),代表普通的maven工程,打包之后是.jar结尾的文件
packaging属性为war,代表java的web工程,打包之后是.war结尾的文件
packaging属性为pom,代表不会打包,用来做基础的父工程
自己后期可以在项目里面随意修改!
创建工程之后,若第一次使用maven,或者使用的是新的本地仓库,idea右下角会出现以下进度条,表示maven正在下载相关插件,等待下载完毕,进度条消失即可
验证maven工程是否创建成功,当创建完毕maven工程之后,idea中会自动打开Maven视图,如下图:
Maven 是一个强大的构建工具,它提供一种标准化的项目结构,可以帮助开发者更容易地管理项目的依赖、构建、测试和发布等任务。以下是 Maven Web 程序的文件结构及每个文件的作用:
|-- pom.xml # Maven 项目管理文件
|-- src
|-- main # 项目主要代码
| |-- java # Java 源代码目录
| | `-- com/example/myapp # 开发者代码主目录
| | |-- controller # 存放 Controller 层代码的目录
| | |-- service # 存放 Service 层代码的目录
| | |-- dao # 存放 DAO 层代码的目录
| | `-- model # 存放数据模型的目录
| |-- resources # 资源目录,存放配置文件、静态资源等
| | |-- log4j.properties # 日志配置文件
| | |-- spring-mybatis.xml # Spring Mybatis 配置文件
| | `-- static # 存放静态资源的目录
| | |-- css # 存放 CSS 文件的目录
| | |-- js # 存放 JavaScript 文件的目录
| | `-- images # 存放图片资源的目录
| `-- webapp # 存放 WEB 相关配置和资源
| |-- WEB-INF # 存放 WEB 应用配置文件
| | |-- web.xml # Web 应用的部署描述文件
| | `-- classes # 存放编译后的 class 文件
| `-- index.html # Web 应用入口页面
`-- test # 项目测试代码
|-- java # 单元测试目录
`-- resources # 测试资源目录
pom.xml:Maven 项目管理文件,用于描述项目的依赖和构建配置等信息。
src/main/java:存放项目的 Java 源代码。
src/main/resources:存放项目的资源文件,如配置文件、静态资源等。
src/main/webapp/WEB-INF:存放 Web 应用的配置文件。
src/main/webapp/index.jsp:Web 应用的入口页面。
src/test/java:存放项目的测试代码。
src/test/resources:存放测试相关的资源文件,如测试配置文件等。