一、Maven 工程的 GAVP 属性
Maven 工程相对之前的工程,多出一组 gavp 属性,gav 需要我们在创建项目的时指定,p 有默认值,后期通过配置文件修改。既然要填写的属性,我们先行了解下这组属性的含义。
Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写,其中前三个是必要的,而 Packaging 属性为可选项。这四个属性主要为每个项目在 maven 仓库总做一个标识,类似人的姓名。有了具体标识,方便 maven 软件对项目进行管理和互相引用。
GAV 遵循以下规则:
(1)GroupID 格式:com.{公司/BU }.业务线.[子业务线],最多 4 级。
如:com.taobao.tddl、com.alibaba.sourcing.multilang
(2)ArtifactID 格式:产品线名-模块名。语义不重复不遗漏。
如:tc-client、uic-api、tair-tool、bookstore
(3)Version 格式:主版本号.次版本号.修订号。如:1.0.0
主版本号:当做了不兼容的 API 修改,或者增加了能改变产品方向的新功能。
次版本号:当做了向下兼容的功能性新增(新增类、接口等)。
修订号:修复 bug,没有修改方法签名的功能加强,保持 API 兼容性。
例如: 初始→1.0.0 修改bug → 1.0.1 功能调整 → 1.1.1等
Packaging 定义规则:
Packaging 指示将项目打包为什么类型的文件,idea 根据 packaging 值,识别 maven 项目类型。
packaging 属性为 jar(默认值),代表普通的 Java 工程,打包以后是 .jar 结尾的文件。
packaging 属性为 war,代表 Java 的 web 工程,打包以后 .war 结尾的文件。
packaging 属性为 pom,代表不会打包,用来做继承的父工程。
二、构建Maven JavaSE工程
注意:此处省略了 version,直接给了一个默认值 1.0-SNAPSHOT,后期可以在项目中随意修改。
三、构建Maven JavaEE工程
1.手动创建
创建一个 javase 的 maven 工程,手动添加 web 项目结构文件。
修改 pom.xml 文件打包方式。
<groupId>com.atguigu</groupId>
<artifactId>maven_parent</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 新增一列打包方式packaging -->
<packaging>war</packaging>
刷新和校验。
注:项目的 webapp 文件夹出现小蓝点,代表成功。
2.插件方式创建
安装插件 JBLJavaToWeb。
创建一个 javase 的 maven 工程,使用插件快速补全 web 项目。
四、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.html:Web 应用的入口页面。
src/test/java:存放项目的测试代码。
src/test/resources:存放测试相关的资源文件,如测试配置文件等。