1.Maven简介
1.1:什么是Maven?
maven['meivn',mevan]是Apache公司开源的项目管理工具,有俩大核心功能
- 管理依赖:对jar包同一管理
- 项目构建:项目在编码完后,对项目进行编译、测试、打包、部署的一系列操作
1.2:Maven的核心
仓库:
本地仓库:用来存储从远程仓库或者中央仓库下载的插件和jar包
私服:如果本地需要插件或者jar包,本地仓库没有则去私服下载
中央仓库:中央仓库服务于整个互联网,它是由maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构建
坐标:
作用:用于定位jar包在仓库中的位置
举例:mybatis-3.4.5.jar
坐标:org.mybatis(公司)+mybatis(项目)+3.4.5(版本信息)
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
2.Maven安装:
2.1下载:
官网:http://maven.apache.org/
2.2解压:
Maven下载后将Maven解压到一个没有中文没有空格的路径下,解压目录结构如下
bin:脚本命令
boot:引导程序,加载类加载器
conf:配置文件,如setting.xml文件
lib:maven本身运行所需的一些jar包
2.3.配置环境变量:
配置MAVEN_HOME:
MAVEN_HOME D:\apache-maven-3.5.4
将MAVEN_HOME环境变量配置到path中
MAVEN_HOME %MAVEN_HOME%\bin
2.4.配置阿里云镜像库:
直接从maven中央仓库下载速度非常慢,我们可以在settings配置文件中,配置阿里云镜像仓库:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
2.5.配置本地仓库路径
打开settings.xml文件,配置如下:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>D:\mvn_repository</localRepository>
3.ldea集成Maven
3.1配置maven
打开:File|Settings|Buid,Excution,Deployment|Build Tools|Mave
3.2设置idea自动导图依赖
首次在pom文件中添加依赖是,IDEA右下角会弹框提升是否开启自动导入,点击开启即可
4.创建Maven工程
4.1创建工程
1.选择maven
2.设置工程名
3.设置工程位置
4.2maven工程目录结构
说明:
| --- src:源码
| --- | --- main:存放主程序
| --- | --- | ---java:java源码文件
| --- | --- | ---resoure:存放框架的配置文件
| --- | --- test: 存放测试程序
| ---pom.xml:maven的核心配置文件
4.3添加依赖
查找坐标
在浏览器打开https://mvnrepository.com/,查找junit的坐标
在pom文件添加依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
添加测试类
import org.junit.Test;
public class DemoTest {
@Test
public void test(){
System.out.println("hello,maven!");
}
}
四、maven的生命周期
清理生命周期:
clean
默认生命周期:
compile-->test-->package-->install(本地仓库)-->deploy(私服)
站点生命周期:
site
注意:maven有三套独立的生命周期,在一套生命周期内执行后边的命令时前边的命令都会执行