Maven入门
笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html)
Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
提供了一套标准化的项目结构
提供了一套标准化的构建流程(编译,测试,打包,发布…...)
提供了一套依赖管理机制
-
标准化的项目结构
Maven提供了一套标准化的项目结构,所有IDE(eclipse,idea,myeclipse这类软件)使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用
-
标准化的构建流程
-
依赖管理
依赖管理其实就是管理你项目所依赖的第三方资源(jar包、插件...)
Maven简介
- Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档
- 官网: http://maven.apache.org/
Maven模型:
-
仓库分类:
本地仓库:自己计算机上的一个目录
中央仓库:由Maven团队维护的全球唯一的仓库 (地址: https://repo1.maven.org/maven2/)
远程仓库(私服):一般由公司团队搭建的私有仓库(国内由于网络原因,一般使用一些企业搭建的开放的私服)
-
当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:
如果有,则在项目直接引用;
如果没有,则去中央仓库中下载对应的jar包到本地仓库。
-
还可以搭建远程仓库,将来jar包的查找顺序则变为:
本地仓库→远程仓库→中央仓库(本地仓库会在远程仓库中找jar包。如果远程仓库中没有,远程仓库会到中央仓库中去下载该jar包)
Maven安装配置
安装过程比较简单。考虑到看这篇博客的人曾经安装过jdk和mysql,安装过程类同理。这里就只是粗略描述一下,就不放操作截图了。如果不清楚可自行百度。
下载地址(根据自己情况选择版本):https://archive.apache.org/dist/maven/maven-3/
-
新建系统变量MAVEN_HOME(bin文件夹所在目录,例如:D:\apache-maven-3.6.3)
-
在Path中新建环境变量%MAVEN_HOME%\bin
-
在cmd中输入mvn -version,如果出现版本信息则环境变量配置成功
-
配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录 (可根据自己喜好设置仓库位置)
<localRepository>D:\maven-repository</localRepository>
-
配置阿里云私服:修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签:
<!--配置阿里云私服--> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
Maven基本使用
Maven常用命令
如果要手动执行,需要在pom.xml文件夹下,在地址栏输入cmd,回车。
以下命令都需要在前面加“mvn”,例如:mvn compile 为执行编译的命令
- compile:编译 -> 生成class文件,位于target文件夹
- clean:清理 -> 删除target文件夹
- package:打包 -> 将项目打包为文件,文件位于target文件夹下
- test:测试 -> 执行test\java文件夹中的代码
- install:安装 -> 把打包好的文件存放到本地仓库
Maven生命周期
-
Maven构建项目生命周期描述的是一次构建过程经历经历了多少个事件
-
Maven对项目构建的生命周期划分为3套
clean:清理工作
default:核心工作,例如编译,测试,打包,安装等
site(不常用):产生报告,发布站点等
同一生命周期内,执行后边的命令,前边的所有命令会自动执行(例如执行install,maven会自动执行complie、test和package,否则不能执行install)
IDEA配置Maven
IDEA配置Maven环境
-
选择IDEA中 File --> Settings
-
搜索 maven
-
设置IDEA使用本地安装的Maven,并修改配置文件路径(路径根据自己实际情况,我的路径仅供参考)(修改配置文件和本地仓库目录需要选中Override)
Maven坐标详解
-
什么是坐标?
Maven 中的坐标是资源的唯一标识
使用坐标来定义项目或引入项目中需要的依赖
-
Maven 坐标主要组成
groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如: com.itheima)
artifactld:定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)
version:定义当前项目版本号
<groupId>com.example</groupId> <artifactId>javaweb01</artifactId> <version>1.0-SNAPSHOT</version>
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.9</version> </dependency>
IDEA创建Maven项目
IDEA界面中:左上角 File(文件)-->New(新建)-->Project...(项目)
选择maven
各种信息根据自己情况修改
创建成功
IDEA导入Maven项目
点击右侧Maven,点击+号
找到一个maven项目的pom.xml文件,再点击OK
左侧就出现了刚刚导入的maven项目
配置Maven-Helper插件
IDEA能够执很方便地执行maven的常用命令,位置如下图所示(直接点击就能执行):
Maven-Helper这个插件能够使用户更加方便的执行maven命令。相较于IDEA自带的,它还能进行Debug。(看自己喜好,不是必须安装)
Maven-Helper安装步骤:
- 选择IDEA中 File --> Settings
- 选择 Plugins
- 搜索 Maven,选择第一个Maven Helper,点击Install安装,弹出面板中点击Accept
- 重启IDEA
依赖管理
使用坐标导入jar包
-
在pom.xml中编写<dependencies>标签
-
在<dependencies>标签中使用<dependency>引入坐标
-
定义坐标的groupld,artifactld,version
其中的坐标信息有相关的网站可供查找:https://mvnrepository.com/
此处以MySQL5.7的驱动为例:
搜索mysql,选择第一个
选择自己需要的版本(一般是找一个用的频率比较高的)
其中就有需要的坐标信息(如果版本不兼容,只需要手动修改版本号)
就可以将坐标信息复制到pom.xml文件中
-
点击刷新按钮,使坐标生效
如果出现以下出现红色,是因为本地仓库中没有这个包,点击右上角的“m”就会使该配置文件生效,会自动下载需要的包(也可以设置不需要点击自动生效,方法自行百度。)
如果本地仓库已经下载了该jar包可以使用 Alt+Insert,然后点击Dependency
然后就可以搜索本地的包进行添加。点击Add就能帮你写好
依赖范围
-
通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境(src/main/java/)、测试环境(src/test/java/)、运行环境(最终使用时)