Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。作为一款日常使用软件,之前有许多不熟悉的地方。今天稍微整理一下,如有不妥之处,可以留言交流。
## maven安装
1.下载maven的zip文件
2.配置MAVEN_HOME:(对应为maven的解压地址路径)
3.配置path:;%MAVEN_HOME%\bin
4.检查是否安装成功;mvn -version,则显示maven的版本
## maven基本介绍
1.主要分为本地仓库(confg下面的setting文件对应的local地址为本地仓库地址)和远程仓库(responselity中对应的远程仓库地址)
```
<settings>
<localRepository>本地目录⽬录</localRepository>
</settings>
```
中央仓库
```
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
```
2.从远程仓库地址拉取对应的jar文件,拉去到本地配置中,从而在项目可以引用到对应的jar
3.核心文件pom,pom文件为核心配置中心,
- project 为工程跟标签
- modelVersion pom的版本模型,2.0或者3.0
- groupId 工程标识,一个组织或者一个项目唯一标识,www.felixwang.site
- artifactId 这个是工程的名字,例如个人网站,博客之类的,groupId 和artifactId一起决定了在仓库中的位置
- version 这个是版本号
- packaging 打包的方式有三种,jar, war,还有EAR三种方式
```
<modelVersion>4.0.0</modelVersion>
<groupId>com.xdclass</groupId>
<artifactId>demo</artifactId>
<version>1.0-SNAPSHOT</version>
```
## maven生命周期
maven的生命周期是对所有构建过程中进行抽象和统一。包涵了清理、初始化、编译、测试、打包、集成测试、验证、部署、的所有站点构建步骤。
### maven的三个构建生命周期
1.clean
- pre-clean执行前期需要清理准备工作
- clean清理上一次完成构建
- post-clean执行后期需要完成的工作
2.default
- validate 验证工程正确性
- compile 项目代码编译
- test 执行适合单元测试框架测试相关
- packageȐ 打包代码
- verify 运行所有检查
- install安装到本地仓库地址(localRepository当中)
- deploy部署到远程仓库,可以共他人使用
## 常用命令
* mvn validate 验证项目是否正确
* mvn package maven打包
* mvn generate-sources 生成源代码
* mvn compile 编译
* mvn test-compile 编译测试代码
* mvn test 运行测试
* mvn verify 运行检查
* mvn clean 清理项目
* mvn install 安装项目到本地仓库
* mvn deploy 发布项目到远程仓库
* mvn dependency:tree 显示Maven依赖树
* mvn dependency:list 显示Maven依赖列表
* 常用参数
* -D 指定参数,如 -Dmaven.test.skip=true 跳过单元测试;
* -P 指定 Profile 配置,可以用于区分环境;
* web相关命令
* mvn tomcat:run 启动tomcat
* mvn jetty:run 启动jetty
* mvn tomcat:deploy 运行打包部署