一、Maven是什么
Maven是一套软件工程管理和整合工具。基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven能够管理项目的构建、报告和文档。
二、环境配置
Maven是一个基于java的工具,所以要做的第一件事就是安装JDK,我安装的JDK是1.8的。
三、POM
POM代码工程对象模型。它是使用Maven工作时的基本组建,是一个xml文件。放在工程根目录下,文件命名为pom.xml。
在创建POM之前,首先确定工程组(groupId),及其名称(artifactId)和版本(version),在仓库中这些属性是工程的唯一标识。
<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.companyname.project-group</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
</project>
注
所有的POM文件需要project元素和三个必须的字段:groupId,artifactId,version。
在仓库中的工程标识为groupId,artifactId,version。
POM.xml的根元素是project,它有三个主要的子节点:
节点 | 描述 |
groupId | 这是工程组的标识。它在一个组织或者项目中通常是唯一的。例如,一个银行组织 com.company.bank 拥有所有的和银行相关的项目。 |
artifactId | 这是工程的标识。它通常是工程的名称。例如,消费者银行。groupId 和 artifactId 一起定义了 artifact 在仓库中的位置。 |
version | 这是工程的版本号。在 artifact 的仓库中,它用来区分不同的版本。 |
四、构建生命周期
构建生命周期是一组阶段的序列,每个阶段定义了目标被执行的顺序。一个Maven构建生命周期由一下几个阶段的序列组成。
阶段 | 处理 | 描述 |
prepare-resources | 资源拷贝 | 本阶段可以自定义需要拷贝的资源 |
compile | 编译 | 本阶段完成源代码编译 |
package | 打包 | 本阶段根据 pom.xml 中描述的打包配置创建 JAR / WAR 包 |
install | 安装 | 本阶段在本地 / 远程仓库中安装工程包 |
五、仓库
仓库是一个位置,例如目录,可存储所用的工程jar文件、library jar文件、插件或任何其他的工程制定的文件。
Maven有三种类型:
本地(local):是机器上的一个文件夹,它在你第一次运行任何maven命令的时候创建。
Maven 本地仓库默认被创建在 %USER_HOME% 目录下。要修改默认位置,在 %M2_HOME%\conf 目录中的 Maven 的 settings.xml 文件中定义另一个路径。
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>C:/MyLocalRepository</localRepository>
</settings>
当运行 Maven 命令,Maven 将下载依赖的文件到你指定的路径中。
中央(central):是由Maven社区提供的仓库,其中包含了大量常用的库。
远程(remote):是开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的jar文件。
总结
Maven中最重要的就是pom.xml文件了。
<?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>
<parent>
<groupId>com.dmsdbj.itoo</groupId>
<artifactId>itoo-root</artifactId>
<version>1.0.3-SNAPSHOT</version>
</parent>
<groupId>com.dmsdbj.itoo</groupId>
<artifactId>physicalProject-parent</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<modules>
<module>physicalProject-web</module>
<module>physicalProject-api</module>
<module>physicalProject-service</module>
</modules>
<dependencies>
</dependencies>
</project>