Maven 解决的问题
- 在我们进行进行开发的时候我们需要很多的jar包,并且jar包直接还可以有冲突
- 可以编译项目 (但是我们一般使用集成开发环境去构建项目)
- 单元测试的时候我们不适合maven 的时候我们要一个一个的去启动(有maven 我们可以快速进行单元测试)
- 项目打包
maven 的作用
-
依赖管理
maven 工程对jar包 的管理过程
-
项目的一键构建
指的是项目从编译,测试,运行,打包,安装,部署,这一个整个构建的过程交给maven
maven 有内置的tomcat
maven 项目和传统项目的区别
- 传统的web 项目jar包在 项目中,maven 项目的jar 包放在本地仓库中
安装和文件配置
安装包下载
目录结构
- bin 二进制文件的存储位置 命令文件存储位置
- boot maven 自身运行需要的类加载器
- conf 配置文件 settings.xml 重要的配置文件
- lib maven 运行依赖的jar包
环境配置
window系统环境变量中设置
- jdk 环境配置(懂的都懂)
- maven 环境配置
- MAVEN_HOME C:\Tool\maven\apache-maven-3.6.3
- Path 添加 %MAVEN_HOME%\bin
maven 仓库
-
本地仓库
我们的电脑存储的jar 包的地方
-
远程仓库(私服)
一般是公司使用的一种jar包管理方式 ,这样的好处是在公司的人在局域网内可以去远程仓库获取自己需要的jar 包,这样也方便的jar 包的统一管理。
远程仓库的jar 包可以来自我们本地上传和远程仓库下载
-
中央仓库
存储几乎所有开源框架的jar 包
maven 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<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:/Tool/maven/apache-maven-3.6.3/repository</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
<!--设置国内的阿里云镜像加速-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<profiles>
</profiles>
</settings>
maven 标准目录
-
核心代码部分
src/main/java
-
配置文件部分
src/main/resources
-
测试代码部分
src/test/java
-
测试配置文件
src/test/resources
maven 命令
-
清除 target 目录
mvn clean #删除所有的编译出的东西 删除 target 目录
-
编译
mvn compile #编译 将 maven/java 下的java文件编译成class 文件 放在 target 目录下的classe
-
测试
mvn test #编译 将 maven/java 下的java文件编译成class 文件 放在 target 目录下的classe #进行测试代码的编译 和 生成class文件 放在 test-classe 文件夹下 #因为单元测试需要用到我们的核心代码所以我们的核心代码也会被打包
-
打包
mvn package #编译 将 maven/java 下的java文件编译成class 文件 放在 target 目录下的classe #进行测试代码的编译 和 生成class文件 放在 test-classe 文件夹下 #将项目打包 #将项目打成包 打包的类型由pom.xml的 <packaging>jar</packaging>决定
-
安装
mvn install #编译 将 maven/java 下的java文件编译成class 文件 放在 target 目录下的classe #进行测试代码的编译 和 生成class文件 放在 test-classe 文件夹下 #将项目打包 #将生成的jar 包 打包放到我们本地仓库中
maven 生命周期
一键构建的过程
- 清除项目的编译信息 mvn clean
- 编译 mvn compile
- 打包 mvn package
- 安装 mvn install
- 发布 mvn deploy
生命周期
清理生命周期
mvn clean
默认生命周期
- 编译 mvn compile
- 打包 mvn package
- 安装 mvn install
- 发布 mvn deploy
站点生命周期
maven概念模型图
依赖的管理
-
项目对象模型
- 项目自身信息
- 项目运行依赖的jar信息
- 项目运行的环境信息
-
依赖管理模型
<dependency> <!--公司组织的名称---> <groupId>org.mybatis.spring.boot</groupId> <!--项目名---> <artifactId>mybatis-spring-boot-starter</artifactId> <!--版本号---> <version>1.3.2</version> </dependency>
一键构建
-
默认的生命周期
依赖于maven 底层的插件
- 编译 mvn compile
- 打包 mvn package
- 安装 mvn install
- 发布 mvn deploy