Maven
maven介绍
- maven是专门用于管理和构建java项目的工具,它基于项目对象模型(pom)的概念,通过一小段描述信息来管理项目的构建,报告和文档:官网:http://maven.apache.org/它的只要功能有:
- 提供了一套标准化的项目结构
- 提供了一套标准化的构建流程(编译,测试,打包,发布......)
- 提供了一套依赖管理机制
- 仓库分类:
- 本地仓库:自己计算机上的一个目录
- 中央仓库:由maven团队维护的全球唯一的仓库:https://repo1.maven.org/maven2/
- 远程仓库(私服):一般由公司团队搭建的私有仓库
- 看图
当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:如果有,则在项目直接引用
没有,则去远程仓库直接下载对应的jar包到本地仓库顺序:本地仓库->远程仓库->中央仓库
Maven安装配置
- 解压apache-maven-3.6.1.rar即安装完成:https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/
- 配置环境变量MAVEN_HOME为安装路劲到bin目录打开dos命令窗口使用mav(这里需要有空格) -version查看是否完成
- 配置本地仓库:修改conf/settings.xml中的< localRepository>为一个指定目录
- 配置阿里云私服:修改conf/setting.xml中的<mirrors>标签,为其添加如下标签:为了提高速度
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nesus/content/groups/public/</url>
<mirrirOf>central</mirrorOf>
<mirror>
Maven基本使用
Maven常用命令
- mvn compile:编译
- mvn clean:清理
- mvn test:测试
- mvn packge:打包
- mvn install:安装
Maven生命周期
- Maven构建项目生命周期描述的是一次构建过程经历多少个事件
- Maven对项目构建的生命周期分为3套
- clean:清理工作
- default:核心工作,例如编译,测试,打包,安装等
- site:产生报告,发布站点等
- 红色为常用命令,其他比较少
IDEA配置Mavens
IDEA配置Maven环境
- 选择IDEA中FIle-->settings
- 搜索maven
- 设置IDEA使用本地安装的Maven,并修改配置文件路径
- 创建模块,选择Maven,点击next 配置jdk版本最好是8或者11
- 填写模块名称,坐标信息
- 编写Demo
Maven坐标详解
- 什么是坐标?
- 就是maven中的坐标是资源的唯一标识
- 使用坐标来定义项目或引入项目中需要的依赖
- maven坐标主要组成
- groupld:定义当前maven项目隶属组织名称(通常是域名反写,例如:com.baidu)
- artifactld:定义当前maven项目名称(通常是模块名称,例如order-serivice)
- version:定义当前项目版本号
Idea导入项目
- 选择右侧Maven面板,点击+号,选择对应项目的pom.xml文件,如果没有maven项目View > Appearance>Tool Window Bars
配置Maven-Helper插件
- 选择Idea中file中的settings,然后选择Plugins,搜索框输入maven选择第一个Maven helper点击Instabll安装,弹出面板中点击Accept,最后重启idea
依赖管理
- 使用坐标导入jar包
- 在pom.xml中编写<dependencies>标签
- 在<dependencies>标签中使用<dependency>引入坐标
- 定义坐标的groupId,artifactiID,version
- 点击刷新按钮,使坐标生效
<!-- 导入mysql驱动jar包-->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
</dependencies>
- 如果遇到3红报错,检查一下配置的路径是否都对了,没问题的话刷新重启Idea
- 例如
- 经典白学之快捷键:al+insert+选择依赖项+搜索框输入需要导入的依赖包选择版本就可以了,小知识:笔记本的按住fn+alt+insert
依赖范围
- 通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境,测试环境,运行环境
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
依赖范围 | 编译classPash | 测试classPash | 运行classPash | 例子 |
compile | Y | Y | Y | logback |
test | N | Y | N | junit |
provided | N | Y | N | servlet-api |
runtime | N | Y | N | jdbc驱动 |
system | Y | Y | Y | 存储在本地的jar包 |
import | 这里都是一行用于引入DependencyManagement |
- <scooe>默认值是compile所以全部都可以