学习目标:
- 能够了解Maven的作用
- 能够理解Maven仓库的作用
- 能够理解Maven的坐标概念
- 能够掌握Maven的安装
- 能够掌握IDEA配置本地Maven
- 能够使用IDEA创建javase的Maven工程
- 能够使用IDEA创建javaweb的Maven工程
- 能够掌握依赖引入的配置方式
- 能够了解依赖范围的概念
一,Maven概述
1.什么是Maven
Maven是项目进行模型抽象,充分运用的面向对象的思想,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。
说白了: Maven是由Apache开发的一个工具软件。用来管理java项目,依赖管理(jar包的管理),项目构建.
2.Maven的作用
-
依赖管理: maven对项目的第三方构件(jar包)进行统一管理。向工程中加入jar包不要手工从其它地方拷贝,通过maven定义jar包的坐标,自动从maven仓库中去下载到工程中。
-
项目构建: maven提供一套对项目生命周期管理的标准,开发人员、和测试人员统一使用maven进行项目构建。项目生命周期管理:编译、测试、打包、部署、运行。
-
maven对工程分模块构建,提高开发效率。
3 Maven的好处
- 使用普通方式构建项目
- 使用Maven构建项目
4. Maven的仓库
仓库名称 | 作用 |
---|---|
本地仓库 | 相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。 |
中央仓库 | 就是远程仓库,仓库中jar由专业团队(maven团队)统一维护。中央仓库的地址:http://repo1.maven.org/maven2/ |
远程仓库 | 在公司内部架设一台私服,其它公司架设一台仓库,对外公开。 |
5. Maven的坐标
Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种jar包等。为了能自动化的解析任何一个Java构件,Maven必须将这些Jar包或者其他资源进行唯一标识,这是管理项目的依赖的基础,也就是我们要说的坐标。包括我们自己开发的项目,也是要通过坐标进行唯一标识的,这样才能才其它项目中进行依赖引用。坐标的定义元素如下:
- groupId:项目组织唯一的标识符,实际对应JAVA的包的结构 (一般写公司的组织名称 eg:com.itheima,com.alibaba)
- artifactId: 项目的名称
- version:定义项目的当前版本
例如:要引入druid,只需要在pom.xml配置文件中配置引入junit的坐标即可:
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
</dependency>
二,Maven的安装
1.下载Maven
2. 安装Maven
将Maven压缩包解压,即安装完毕
3 Maven目录介绍
4 配置环境变量
- 进入环境变量
- 配置MAVEN_HOME和Path
5 配置本地仓库
5.1 将软件文件夹中的Repository解压
5.2 配置本地仓库
在maven的安装目录中conf/ settings.xml文件,在这里配置本地仓库
- 示例代码
<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
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>E:/source/04_Maven/repository_pinyougou</localRepository>
6 ,测试Maven安装成功
打开cmd本地控制台,输入mvn -version
三,IDEA创建Maven工程
1. IDEA指定本地Maven
-
配置Maven
-
配置参数(创建工程不需要联网,解决创建慢的问题) -DarchetypeCatalog=internal
2 创建javase工程
2.1 创建java工程
2,2 java工程目录结构
- 需要main/java文件夹变成 源码的目录(存放java源码)
- 需要test/java文件夹变成 测试源码的目录(存放单元测试)
- 创建resources目录, 变成资源的目录
注意,其实不用像上面一个个Mark Directory as,找到idea右边的maven,然后点击刷新按钮即可变颜色,如下图↓
-
整体结构
2.3 编写Hello World!
3 创建javaweb工程
3.1 创建javaweb工程
- 创建javaweb工程与创建javase工程类似,但在选择Maven骨架时,选择maven-archetype-webapp即可:
- 创建好的javaweb工程如下:
- 所以,要手动创建一个java目录用于编写java代码:
- 还要将java目录添加为Source Root:
3.2 发布javaweb工程
3.3 浏览器访问效果
3.4 Maven创建javaweb工程的目录结构
4. 配置默认Maven环境
每次创建Maven工程的时候,总是需要重新选择Maven配置信息,那是因为默认的Maven环境不是我们当前的maven环境,所以需要配置。配置流程如下图:
-
选择默认的配置
-
进入配置
- 配置参数(创建工程不需要联网,解决创建慢的问题) -DarchetypeCatalog=internal
- 重启IDEA, 就可以生效了
四,创建自定义JavaWeb工程
在三中,在创建javaweb工程时,使用的是maven-archetype-webapp骨架,如果不使用骨架,怎样创建一个javaweb工程呢,见下面的讲解:
- 创建一个Maven工程,不选择任何骨架
- 填写坐标信息
-
创建web工程信息
-
创建好的javaweb工程的目录结构如下
但是以上,都不是我推荐的,建议用下面的方式来创建javaweb工程,打war包,自己写webapp/WEB-INF/web.xml
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.qf</groupId>
<artifactId>javawebno2</artifactId>
<version>1.0-SNAPSHOT</version>
<!--记得打war包-->
<packaging>war</p