版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wuskzuo/article/details/79454002
1. Maven是什么?
Apache Maven Project — Apache的优秀开源项目, 基于项目对象模型,可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
2. Maven能干什么?
- 用Maven可以方便的创建项目,基于archetype可以创建多种类型的java项目。
- Maven仓库对jar包(artifact)进行统一管理,避免jar文件的重复拷贝和版本冲突。
- 团队开发,Maven管理项目的RELEASSE和SNAPSHOT版本,方便多模块的项目中,各个模块之间的快速集成。
3.Maven优势
- 约定优于配置
- 使用简单
- 测试支持
- 构建简单
- 插件丰富
4. Maven常见命令
mvn | 命令含义 |
---|---|
-v | 查看Maven版本 |
compile | 编译项目 |
test | 测试项目 |
package | 打包项目 |
clean | 删除target |
install | 将jar包安装到本地仓库 |
deploy | 将本地jar包发布到remote |
5. 创建第一个Maven框架
创建目录方式
- archetype:generate 安装提示进行选择填写
- archetype:generate -DgroupId = 组织名+公司网址反写+项目名
-DartifactId = 项目名+模块名 -Dversion = 版本 -Dpackage = 所在包名
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/xsd/maven-4.0.0.xsd">
<!-- 指定了Pom的版本-->
<modelVersion>4.0.0</modelVersion>
<groupId>项目名</groupId>
<artifactId>模块名</artifactId>
<!--
一般三个数字,如 1.0.0 +
SNAPSHOT(快照版)
alpha(内测版)
beta(公测版)
Release(稳定版)
GA(发布版)
-->
<version>版本号</version>
<package>生成包</package>
<name>项目描述名</name>
<url>项目的地址</url>
<description>项目描述</description>
<developers>开发人员列表</developers>
<lienses>许可证</lienses>
<organization>组织</organization>
<dependencies>
<dependency>//依赖
<!-- 坐标 -->
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<optional></optional> //设置依赖是否可选
<exclusions></exclusions>//排除传递依赖列表
<type></type>
<scope></scope> // 默认complile 使用场景
<exclusions> //移除包,解决依赖冲突
</dependency>
</dependencies>
<dependencyManagement></dependencyManagement>//依赖管理
<build>
<plugins>//插件列表
坐标
</plugins>
</build>
<parent></parent>
<modules></modules> //指定多个模块编译
<properties></properties> //定义变量
</project>
- 依赖获取地址:https://mvnrepository.com/
6. Maven 生命周期
lifecycle -> phase -> goal
1. 生命周期包含多个阶段。
2. 每个阶段又包含多个插件目标。