目录:
一.为什么使用Maven?
二.Maven是什么?
三.Maven环境配置
四.Maven的核心概念
五.常用的Maven命令
六.Maven在Idea中的应用
一.为什么使用Maven?
- 如果项目比较庞大,就不适合用包来划分模块了
- 不利于分工
- 使用Maven来进行项目划分,将项目拆分成多个工程
- Jar包必须手动复制粘贴到项目中
- 使用maven可以将jar包存储在“仓库”中,当需要使用是,我们可以去“引用”这个jar包
- 使用maven可以以一种规范的方式来下载jar包,因为知名的框架都是以这种规范来管理jar包的,并存放在“仓库”中,我们只需要进行配置,maven会自动帮我们去下载jar包,并帮我们下载jar包的其它依赖
二.Maven是什么?
Maven 是一款服务于Java平台的自动化构建工具
Make -> Ant - > Maven -> Gradle
三.Maven环境配置
1.首先需要下载Maven,到官网下载这种形式
apache-maven-3.8.6-bin.zip
2.然后就是配置环境
1.M2_HOME:D:\tools\apache-maven-3.8.3 (解压的maven地址)
2.path:D:\tools\apache-maven-3.8.3\bin (解压的maven的bin地址)
3.查看maven的版本信息:
在dos命令窗口输入:mvn -v
4.修改本地仓库的目录
默认仓库为:c:用户/.m2/repository
修改方式为:在apache-maven-3.8.3的目录下的conf\settings.xml
添加指定仓库的位置:<localRepository>D:/tools/repository</localRepository>指定位置
5.添加远程仓库地址,这样下载jar的速度更快
添加位置:在apache-maven-3.8.3的目录下的conf\settings.xml
添加
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
四.Maven的核心概念
-
约定的目录结构
-
POM
-
坐标
-
依赖
-
仓库
-
生命周期/插件/目标
-
继承
-
聚合
1).约定的目录结构为:
- src:源码目录
- Pom.xml:maven项目的核心配置文件
- Main:项目的程序主目录
- Test:存放测试程序的目录
- Java:存放java源文件
- Resources:存放框架配置文件等
2)Pom.xml的配置
<?xml version="1.0" ?>
<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.jf.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Hello</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
3.)坐标--------------------------(这里的坐标值得是相对应用的位置,像x,y,z)
<groupId>junit</groupId> <文件路径>
<artifactId>junit</artifactId> <名字>
<version>4.0</version> <版本号>
<scope>test</scope> <依赖方式>
4.)依赖
<dependencies> <依赖标题s>
<dependency> <依赖标题>
<groupId>junit</groupId> <依赖路径>
<artifactId>junit</artifactId> <依赖名字>
<version>4.0</version> <版本号>
<scope>test</scope> <方式>
</dependency>
</dependencies>
五.常用的Maven命令
- mvn clean :清理
- mvn compile :编译主程序,在target目录下生产编译的结果
- mvn test-compile: 编译测试程序
- mvn test: 执行测试
- mvn package: 打包
- mvn install:安装,将项目打包成jar包,并复制到本地仓库中
- mvn stie:生成站点信息
注意:执行与构建相关的命令,必须进入项目的根目录
生命周期的阶段 | 插件的目标 | 插件 |
compile | compile | maven-compiler |
test-compile | testCompile | maven-compiler |
六.Maven在Idea中的应用
1.首先需要在dos窗口中输入:mvn archetype generate,导入maven模板
2.然后在idea中创建
3.聚合
父类工程打包方式为pom
<packaging>pom</packaging>
子类工程打包方式,要继承父类
<parent>
<groupId>com.jf.parent</groupId>
<artifactId>Parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
父工程声明依赖,这样子类在依赖的时候就不用指定版本号
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
问题:有继承机构的maven项目,在打包或安装子工程时,必须先安装父工程
解决问题:
聚合:这样就可以不用考虑子类还是父类,安装时只需要安装父工程即可 install
<modules>
<module>../M1</module>
<module>../M2</module>
<module>../M3</module>
</modules>
4.在没有继承关系的时候应该怎样统一版本
<properties>
<spring.version>4.3.4.RELEASE</spring.version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
注意事项:
依赖的原则
(1) 路径相同
先配置的优先
(2) 路径不同
就近原则
总结:maven的基本应用以及,在项目中的添加使用。
补充
1. IDEA中的 Project 相当于Eclipse系中的 Workspace ;
2. IDEA系中的 Module 相当于Eclipse系中的 Project ;
3. IDEA中一个 Project 可以包括多个 Module ;
4. Eclipse中一个 Workspace 可以包括多个 Project;