Maven 简介:
官网:Maven – Welcome to Apache Maven
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.
ApacheMaven 是一个软件项目管理和理解工具。基于项目对象模型(POM)的概念,Maven 可以从中心信息块管理项目的构建、报告和文档。
没有使用 maven 管理的项目有很多问题
很多模块,模块之间的关系,手工管理关系比较繁琐
需要很多第三方功能,需要很多 jar 文件,手工从各个网站获取 jar
需要管理 jar 版本 如 mysql7.jar mysql6.jar
管理 jar 文件的依赖,你的项目要使用 a.jar 需要 b.jar 里面的类 a.jar 依赖 b.jar
使用 maven 改进项目的开发和管理,需要 maven
- maven 可以管理 jar 文件
- 自动下载 jar 和其它文档,源代码
- 管理你的需要的 jar 依赖, a.jar 依赖 b.jar maven 会自动下载 b.jar
- 帮你编译程序 ,把 java 编译为 class
- 帮你打包文件,形成 jar 文件 或 war 文件
- 帮你部署项目
构建
测试 运行 打包 部署等待
- 清理,把之前项目编译的东西删除掉,为新的编译代码做准备
- 编译,把程序源代码编译为执行代码,java 变为 class 文件
- 测试,maven 可以执行测试程序代码,验证你的功能是否正确
- 报告,生成测试报告
- 打包 ,把项目的所有 class 文件配置等资源压缩一个 jar 文件中,web 项目 war 包
- 安装,把生成的 jar war 安装到本机仓库
- 部署(非 maven)
maven 核心概念
1
2
3
4
5<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.4.2.RELEASE</version>
</dependency>groupId 类似 java 包名,通常公司或组织名称
artifactId 类似 java 类名称
version 版本号
一个 maven 工程师由 groupId arrifacId 和 version 作为唯一标识
. pom :一个文件 pom.xml,项目对象模型
. 约定的目录结构:maven 项目目录文件位置都是规定的
. 坐标:是唯一的字符串,用来标识资源
. 依赖管理:管理你的项目可以使用 jar 文件
. 仓库管理:你的资源存放的位置
. 生命周期:maven 工具构建项目的过程
. 插件目标:执行 maven 构建的时候构建的工具插件
继承
1
2
3
4
5
6
7
8
9
10
11
12
13multiple-project
├── pom.xml
├── parent
│ └── pom.xml
├── module-a
│ ├── pom.xml
│ └── src
├── module-b
│ ├── pom.xml
│ └── src
└── module-c
├── pom.xml
└── src聚合: 好几个项目
约定的目录结构:
main:放主程序的目录
java 程序的包和包中的代码
resources 放置测试 java 程序中要使用的配置文件
1 | Hello |
安装配置
官网下载
1 | M2_HOME=/path/to/maven-3.6.x |
Windows 可以把%M2_HOME%\bin
添加到系统 Path 变量中。
1 | <project xmlns="http://maven.apache.org/POM/4.0.0" |
mvn -v
编译 maven 项目:
在 pom.xml 同级目录下 mvn compile 命令下编译 src/main 目录下所有的 java 文件
为什么下载:maven 工具执行操作需要很多插件 java 类完成的
下载什么东西: jar 文件 –叫做插件- 完成某些功能
下载东西存在哪: 默认仓库 用户目录 ./c/Users/47518/.m2/repository
在项目根目录下生成 target 目录(结果目录)
执行结果:
1 | /d/java/maventest/target/classes |
更改本地仓库地址
maven/conf –>settings.xml 备份更改
<localRepository>D:/maven/mavenwork</localRepository>
仓库:
存放 maven 使用的 jar 和我们项目的 jar
maven 使用的各种插件 项目的 jar 第三方的工具
本地仓库 远程仓库(中央仓库 和镜像)
maven 本地 –私服 –镜像—中央仓库
pom.xml 项目对象模型
modelVersion 4
groupId 域名的到写 com.baidu.com
artifactId 项目名称也是模块名称
version 版本号 自定义 1.0.1 -SNAPSHOP 开发中的快照
1 坐标:groupId artifactId version
1 | <groupId>org.example</groupId> |
mvn 中央仓库搜索使用的 :https://mvnrepository.com/
2 packaging: 打包后压缩文件的扩展名,默认为 jar web war
3 依赖 dependencies 和 dependency
1 | <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> |
4 properties 设置属性
5 build :maven 在进行项目构建时的指定 java jdk 版本
生命周期:构建项目的过程 编译 测试 打包 部署
命令:
mvn compile main/java 下面的程序
mvn clean
mvn test 测试
mvn test-compile test/java
mvn package
mvn install
mvn deploy 部署程序
maven 插件: 完成功能的插件 jar 文件
插件
1 | <plugins> |
idea
不用内置的 用自己安装的
1.file –settings –Build,Excution,Deploy –build tools
VM Options :-DarchetypeCatalog = internal
file –other-settings 以后工程
- 本文作者: 东方觉主
- 本文链接: http://www.charon193.com/2021/06/10/maven/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!