介绍
maven是一个项目管理工具。
- 自动引入管理jar包,解决版本冲突
- 项目生命周期:清理、编译、测试、报告、打包、部署
安装和配置
官网下载、解压、安装
需要依赖Java环境
MAVEN_HOME:值为maven的安装路径
在Path中添加:%MAVEN_HOME%in
版本测试:
mvn -v
仓库
本地仓库:用来存储从远程仓库或中央仓库下载的插件和jar包。
远程仓库:属于公共资源,存储大量的插件和jar包,供本地仓库进行下载
中央仓库:特殊的远程仓库,为maven官方所有,资源最全面。
配置本地仓库
1)创建一个文件夹,localRepository
2)修改confsetting.xml文件中内容
<localRepository>D:/repository</localRepository>
配置国内镜像仓库
在settings.xml下的mirrors节点中配置
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
- id:唯一标识一个镜像
- name:镜像名称
- url:镜像地址
- mirrorOf:代表一个镜像的替代位置,例如central就表示代替官方的中央仓库```
全局配置与个性配置
直接在安装目录下的settings.xml配置属于全局配置
在c目录个人用户下的settings.xml配置属于个性配置
maven工程
目录结构
- .settings:工具生成的文件
- src/main/java —— 存放项目的.java文件
- src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件
- src/main/webapp —— 存放项目的web资源,如jsp,web-info等
- src/test/java —— 存放所有单元测试.java文件,如JUnit测试类
- src/test/resources —— 测试资源文件
- target —— 项目输出位置,编译后的class文件会输出到此目录
- pom.xml——maven项目核心配置文件
命令
- compile:将src/main/java下的文件编译为class文件输出到target目录下。
- test:会执行src/test/java下的单元测试类
- clean:会删除target目录及内容。
- package:对于java工程执行package打成jar包,对于web工程打成war包。
- install:执行install将maven打成jar包或war包发布到本地仓库。
生命周期
maven对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:
- Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
- Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
- Site Lifecycle 生成项目报告,站点,发布站点。
概念
Maven包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
坐标定义
在pom.xml中定义坐标,内容包括:groupId、artifactId、version,详细内容如下:
<!--项目名称,定义为组织名+项目名,类似包名-->
<groupId>cn.itcast.maven</groupId>
<!-- 模块名称 -->
<artifactId>maven-first</artifactId>
<!-- 当前项目版本号,snapshot为快照版本即非正式版本,release为正式发布版本 -->
<version>0.0.1-SNAPSHOT</version>
<packaging > :打包类型
jar:执行package会打成jar包
war:执行package会打成war包
pom :用于maven工程的继承,通常父工程设置为pom
pom基本配置
<project > :文件的根节点 .
<modelversion > : pom.xml使用的对象模型版本
<groupId > :项目名称,一般写项目的域名
<artifactId > :模块名称,子项目名或模块名称
<version > :产品的版本号 .
<packaging > :打包类型,一般有jar、war、pom 等
<name > :项目的显示名,常用于 Maven 生成的文档。
<description > :项目描述,常用于 Maven 生成的文档
<dependencies> :项目依赖构件配置,配置项目依赖构件的坐标
<build> :项目构建配置,配置编译、运行插件等。
已有maven项目的使用
1)那么建议将下载的maven项目中的.idea目录和.iml文件删除
2)在idea中直接open项目,如果项目生成不成功可以重建
3)明确下载项目配置
4)确定JDK
5)确定项目模块