Maven是项目管理的Java工具,JavaEE中使用Maven可以方便地管理团队合作项目,可使用Maven管理类库,有效地方便团队其它人员使用。
Maven是一个项目管理和整合工具,为开发者提供了一套完整的构建生命周期框架。能快速完成工程的基础架构配置,因为Maven使用了一个标准的目录结构和一个默认的构建生命周期。
Maven是基于项目对象模型(POM,Project Object Mode),通过一小段配置描述信息来管理项目的构建、报告、文档的软件项目管理工具。
简单来说,Maven是专门用于构建和管理项目的工具,帮助下载所需jar
包,帮助管理项目结构,并实现项目的维护、打包等...
安装配置
- https://maven.apache.org/download.cgi
- Maven3.3 要求 JDK1.7+
$ java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
Windows环境下下载bin.zip
版本,解压后移动到自定义路径下。
配置环境变量
- 系统环境变量:
MAVEN_HOME
- 环境变量值:
%MAVEN_HOME%\bin
查看版本监测是否成功
$ mvn --version
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: D:\Install\maven
Java version: 1.8.0_31, vendor: Oracle Corporation, runtime: D:\Install\Java\jdk1.8\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "windows"
配置仓库
Maven仓库可分为三种
- 本地仓库:相当于缓存,工程第一次会从远程仓库下载
jar
包存放到本地,第二次不需要从远程仓库区下载,先会从仓库中寻找,如果找不到才会区远程仓库寻找。 - 中央仓库:远程仓库,仓库中
jar
包由Maven团队统一维护 - 自建仓库:远程仓库,公司内部架设私人服务器对外公开(私服)
Maven项目首先会从本地仓库中获取jar
包,若不存在则会从远程仓库中去下载,并放入本地仓库以备使用。
Maven的作用在于只需要在pom.xml
项目配置文件中添加对应配置,Maven就会自动的下载相应的jar
包,配置的jar
包的依赖文件也会被它自动下载下来。另外可直接通过Maven来打包war
或jar
项目。
重置本地仓库地址
本地仓库位置通过Maven核心配置文件settings.xml
来配置,settings.xml
文件位于Maven安装目录下的conf
文件夹下。
Maven安装目录下创建一个repository
目录,在核心配置文件setting.xml
中将仓库存放位置设置为自己设置的路径。
$ cd maven
$ mkdir repository
$ vim conf/setting.xml
<localRepository>D:\Install\maven\repository</localRepository>
配置阿里云私服地址,注意只可配置一个,若存在多个则需要注释,否则可能发生冲突导致jar
包下载失败。
$ vim setting.xml
修改Maven源地址为阿里源http://maven.aliyun.com/nexus/content/groups/public
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
检测是否已经安装成功
$ mvn help:system
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 52.465 s
[INFO] Finished at: 2022-01-25T00:46:14+08:00
[INFO] ------------------------------------------------------------------------
POM
POM是Project Object Model项目对象模型,是Maven工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建、声明项目依赖等。pom.xml
是Maven的核心配置文件,用于描述整个Maven项目,又称为Maven描述文件。
$ vim 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>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi</artifactId>
<version>3.8.0</version>
<name>ruoyi</name>
<url>http://www.ruoyi.vip</url>
<description>若依管理系统</description>
<packaging>pom</packaging>
</project>
标签 | 描述 |
---|---|
modelVersion | 指定当前Maven模型的版本号 |
groupId | 组织名称,由三部分组成,每部分以点号分割,分别是“项目用途.公司名称.项目名称”。 |
artifactId | Maven构建的项目名 |
version | 版本号 |
packing | 项目打包类型,默认为jar ,可选择jar 、war 、rar 、ear 、pom 。 |
dependencies | 项目依赖的jar 包被成为dependency 。 |
properties | 自定义的配置属性 |
build | 与构建相关的配置 |
Maven中groupId
、artifactId
、version
三个元素构成了一个Maven项目的基本坐标,可以唯一标识一个Maven项目。
<!-- SpringBoot的依赖配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
目录结构
Maven基于“约定大于配置”的原则,定义了一个标准的目录结构。
文件 | 描述 |
---|---|
target/ | 编译输出后代码存放位置 |
src/ | 源代码存放位置 |
src/main/ | 项目代码存放位置 |
src/test/ | 测试代码存放位置 |
src/main/java/ | Java代码存放位置 |
src/main/resources/ | 配置文件存放位置 |
webapp/ | Web应用代码存放位置 |
pom.xml | Maven项目的配置文件 |
MVN
命令 | 描述 |
---|---|
mvn compile | 编译,执行后会生成一个target 文件夹,文件夹中是编译后的内容。 |
mvn clean | 清除编译后产生的target 文件夹 |
mvn package | 将项目打包,默认为jar 包。 |
mvn install | 将项目打成jar 包后放入本地仓库 |