1. 简介
- 概念
- Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
- Maven是用Java语言编写的。他管理的东西统统以面向对象的形式进行设计,最终他把一个项目看成一个对象,而这个对象叫做POM(project object model),即项目对象模型
- Maven的作用
- 项目构建:提供标准的、跨平台的自动化项目构建方式
- 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
- 统一开发结构:提供标准的、统一的项目结构如下
- 各目录存放资源类型说明
- src/main/java:项目java源码
- src/main/resources:项目的相关配置文件(比如mybatis配置,xml映射配置,自定义配置文件等)
- src/main/webapp:web资源(比如html,css,js等)
- src/test/java:测试代码
- src/test/resources:测试相关配置文件
- src/pom.xml:项目pom文件
2. 下载和安装
2.1 下载
- maven官网:http://maven.apache.org/
- 官方下载地址:http://maven.apache.org/download.cgi
2.2 安装
- 解压即安装
- 解压完成后目录结构如下
- 目录结构说明
- bin:可执行程序目录,
- boot:maven自身的启动加载器
- conf:maven配置文件的存放目录
- lib:maven运行所需库的存放目录
2.3 环境配置
- 我的电脑
-------->
属性--------->
高级系统设置---------->
新建系统变量MAVEN_HOME
,变量值为安装路径 - 配置path变量,新建
%MAVEN_HOME%\bin
3. 仓库
3.1 介绍
- 用于存储资源,包含各种jar包
3.2 分类
- 本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
- 远程仓库:
- 中央仓库:maven团队自身维护的仓库,属于开源的
- 私服:各公司/部门等小范围内存储资源的仓库,私服也可以从中央仓库获取资源
私服的作用
- 保存具有版权的资源,包含购买或自主研发的jar
- 一定范围内共享资源,能做到仅对内不对外开放
3.3 坐标
- Maven中的坐标用于描述仓库中资源的位置
- Maven坐标中主要组成
- groupId:定义当前资源隶属组织名称(通常是域名反写,如:org.mybatis;com.itheima)
- artifactId:定义当前资源的名称(通常是项目或模块名称,如:crm,sms)
- version:定义当前资源的版本号
packaging:定义资源的打包方式,取值一般有如下三种
- jar:该资源打成jar包,默认是jar
- war:该资源打成war包
- pom:该资源是一个父资源(表明使用maven分模块管理),打包时只生成一个pom.xml不生成jar或其他包结构
- 查询资源坐标
- 如果要查询maven某一个资源的坐标,我们通常可以去maven的仓库进行查询,在网站https://mvnrepository.com/中直接搜索想要的资源,点击进行查看
3.4 仓库配置
- 开发者要在自己电脑上做开发,首先要做的就是配置本地仓库
- 默认情况下maven本地仓库的位置,在maven的配置文件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标签是在注释中的,将该标签挪出注释,修改其中的值,指定目录作为本地仓库的位置
- maven默认连接的远程仓库位置站点并不在国内,下载速度很慢,我们一般配置为国内的站点,例如
<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
4. maven项目
4.1 Maven工程目录结构
4.2 手动搭建maven项目
- 在D盘下创建目录
mvnproject
并进入该目录,作为我们的操作目录 - 创建我们的maven项目,创建一个目录
project-java
作为我们的项目文件夹,并进入到该目录 - 创建java代码(源代码)所在目录,即创建
src/main/java
- 创建配置文件所在目录,即创建
src/main/resources
- 创建测试源代码所在目录,即创建
src/test/java
- 创建测试存放配置文件存放目录,即
src/test/resources
- 在
src/main/java
中创建一个包(注意在windos文件夹下就是创建目录)com/itheima
,在该目录下创建Demo.java
文件,作为演示所需java程序,内容如下package com.itheima; public class Demo{ public String say(String name){ System.out.println("hello "+name); return "hello "+name; } }
- 在
src/test/java
中创建一个测试包(目录)com/itheima
,在该包下创建测试程序DemoTest.java
package com.itheima; import org.junit.*; public class DemoTest{ @Test public void testSay(){ Demo d = new Demo(); String ret = d.say("maven"); Assert.assertEquals("hello maven",ret); } }
- 在
project-java/src
下创建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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.itheima</groupId> <artifactId>project-java</artifactId> <version>1.0</version> <packaging>jar</packaging> <dependencies>