什么是Maven?
maven 是专门用于构建和管理java相关项目的工具。
Maven 的正确发音是[ˈmevən],而不是“马瘟”以及其他什么瘟。Maven 在美国代表专家、内行的意思。
所以用Maven管理Java 项目,你就是专家了 -_-!
Maven 能帮我们做什么事?
- 统一管理各种jar包
- 编译java文件
- 单元测试
- 统一的项目结构
Maven的安装(windows)
macOS下直接brew install maven即可
- 去官网下载最新版Maven
- 下载后直接解压放在没有中文,没有空格的路径下
- 配置全局环境变量 MAVEN_HOME为刚才的路径(需要JAVA_HOME)
- 在path里添加 %MAVEN_HOME%\bin
- win+R cmd 输入 mvn-v,出现版本信息 即配置成功。
Maven仓库
所谓的仓库就是用于存放项目需要的jar包的。
maven采用一个仓库,多个项目的方式,让多个项目共享一个仓库里的相同jar包。
Maven仓库有三个:
本地仓库、远程仓库(私服)、中央仓库
本地仓库一般位于 ${u}/.m2/repository/,也就是用户目录下的.m2文件夹
可以在maven/con文件中配置 <localRepository></localRepository>来指定本地仓库位置
一般不要将仓库放在C盘,系统崩了,重装系统,仓库就没了。
maven找jar包的顺序:现在本地仓库找,找不到再去中央仓库(联网状态下)。
Maven镜像源配置
maven 会默认从maven官方提供的服务器下载jar包。
而官方服务器在国外,因为大家都知道的原因,网速很慢,而且容易卡断。 为了便于快速下载相关jar包,可以使用国内阿里云提供的maven仓库 官网:
在 maven/con中的 <mirror></mirror>加入一个阿里云的镜像地址:
<mirror> <mirror> <id> alimaven </id> <mirrorOf> central </mirrorOf> <name> aliyun maven </name> <url> /nexus/content/repositories/central/ </url> </mirror> </mirror>其中 <id>为该镜像的唯一标识符。id用来区分不同的mirror元素。
<mirrorOf>的值为 central,表示该配置为中央仓库的镜像。
<mirrorOf>的值如果为*,表示匹配所有远程仓库。
Maven项目的一些简单命令
Maven项目目录结构
了解maven命令之前首先了解maven项目的目录结构
src/main/java/ 核心代码目录
src/main/resources/ 配置文件目录
src/test/java/ 测试代码部目录
src/test/resources/ 测试配置文件目录
src/main/webapp/ web页面资源,js,css,图片等
target/ 编译后的文件所在目录
Maven命令
首先cd到maven项目的根目录
- mvn clean
- 清除已编译的class文件等,也就是直接删除target文件夹。一般接手别人的项目后要先执行此命令。
- mvn compile
- 编译项目文件,不包含测试类
- mvn test
- 编译测试类文件,包括非测试类文件
- mvn package
- 将项目打包成war包
- mvn install
- 执行编译、测试、打包、并将当前项目放在本地仓库中
- mvn tomcat:run
- 运行Tomcat,跑项目。默认版本Tomcat6
命令一般很少用到,了解一下即可
Maven项目的配置文件
POM是项目对象模型(Project Object Model)的简称。
包含项目自身的信息、项目所依赖的jar包信息、项目的运行环境信息 (jdk、tomcat)等。它是Maven项目中必须包含的文件。
- 依赖管理模型: <dependencies>标签内配置项目所依赖的jar包
- <scope>作用域比较:
- maven的插件 </build>标签的 <plugins>中配置maven所需要的插件
idea创建Maven项目
勾选Create from archetype,使用maven模板会从网上下载模板
不勾选直接创建maven项目