MAVEN新手教程
1.首先我们需要知道什么是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.
是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。它是构建工具,也是依赖管理工具,项目信息聚合工具。
其中最核心的项目对象模型(POM),那什么是项目对象模型呢?
实例化来说,一个maven工程都有一个pom.xml文件,通过pom.xml文件定义项目的坐标、项目依赖、项目信息、插件目标等信息,这个模型就是项目对象模型。
我们为什么需要学习MAVEN?MAVEN可以给我们带来什么帮助吗?
因为在开发中经常需要依赖第三方的包,包与包之间存在依赖关系,版本间还有兼容性问题,有时还里要将旧的包升级或降级,当项目复杂到一定程度时包管理变得非常重要。
Maven提供了开发人员构建一个完整的生命周期框架。他可以统一开发规范与工具,统一管理jar包。因此,我们就要用到Maven一个项目管理工具。
我们接下来需要学习如何下载以及安装MAVEN
1.官网下载安装[link](https://maven.apache.org/download.cgi)链接: link.,选择bin.zip的版本
2.解压到安装目录
3 配置环境变量
M2_HOME = D:\app\apache-maven-3.6.1
PATH = %M2_HOME%\bin
4.测试安装成功:cmd中执行mvn -v
5.修改配置文件,apache-maven-xxx\conf目录下的settings文件
(可选,默认在C盘的用户目录下)修改localRepository(本地仓库) 为
<localRepository>d:/mvn/repo</localRepository>
(极速之选,不选龟速)修改mirrors,在<mirrors>标签下加入以下配置,启动阿里云的镜像
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
6.配置到你的eclipse中
使用MAVEN之前我们需要了解一些关于MVEN的基础知识
1.MAVEN是一个构建工具
构建的默认生命周期:校验- 初始化- 编译- 测试- 打包- 集成测试- 安装- 部署
默认生命周期:validate-initialize-compile-test-package-integrationTest-install-deploy
相关命令:
mvn compile 编译
mvn test 测试
mvn package 打包
mvn clean 清理 生命周期,(把所有生成的东西都删除)
2.MAVEN中的坐标
坐标存在于pom.xml之中 ,统一管理有关你的项目信息
对maven来说,采用"约定优于配置"的策略可以减少修改配置的工作量,也可以降低学习成本,更重要的是,给项目引入了统一的规范。
坐标(maven的版本规范 )
坐标标签名 | 坐标标签意义 | 实例 |
---|---|---|
groupId | A公司的域名反写 | com.woniu,cq |
artifactId | 项目名 | rocker |
version | 版本 | SNAPSHOT(快照版本) rc RELEASE GA milestone |
type | 类型 | jar、war |
classifier | 标识符 | 例如JDK15 |
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200807234204217.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xPU0VOR01FTg==,size_16,color_FFFFFF,t_70type代表了类型常见的有jar、war
pom.xml中还有你所需要的依赖的信息
denpendency标签所代表的就是依赖的信息
这是记录你的依赖相关信息,用于在仓库中寻找你所需要的依赖信息
仓库是什么呢?
就是你需要一个依赖但是没有这个依赖则需要去寻找,去哪里寻找呢就是去仓库寻找,
仓库一共分为3个:
1是local仓库本地的之前在配置mvn的setting.xml文件中也更改了地址的,就是从中央仓库或者镜像仓库中取下,然后储存在本地的。
2private私人的镜像仓库。也是在setting.xml中设置的。设置这个可以方便我们从国内的镜像网站中下载所需要的依赖,不需要去中央仓库下载,可以提高我们的开发的效率
3.central:中央仓库,所有依赖的公共储存库,下载速率慢
然后根据依赖信息去寻找依赖,首先要看你本地仓库有没有所需要的依赖,有所需依赖则不会再去下载,直接使用。没有的话则按 local -> private-> central 的顺序去寻找所需依赖并下载。
MVN的目录结构
└─src 源代码目录
├─main 工程源代码目录
│ ├─java java源码
│ │ └─com
│ │ └─woniuxy
│ │ └─build 包名
│ └─resources 资源目录: 配置文件
└─test 测试相关
│ └─java
│ └─com
│ └─woniuxy
│ └─build
└─target 输出目录,所有的输出物都存放在这个目录下
└─arget/classes 编译之后的class文件
pom.xml 用于maven的配置文件
依赖的特性
Only compile and runtime scopes are transitive
A->B->C
简单传递依赖:A->C
A->B-C(0.1)
A->C(0.2)
最短路径优先原则: A->C(0.2)
A->B->C(0.1)
A->E->C(0.2)
第一声明优先原则:最终依赖C(0.1)
#依赖排除 在depency标签中加入不需要的依赖信息如:
<exclusions>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
</exclusion>
</exclusions>
Maven常用命令
-
compile
-
clean 删除target/
-
test test case junit/testNG
-
package 打包
5. install 把项目install到local repo
- deploy 发本地jar发布到remote
安装成功之后我们应该学会简单的使用MAVEN
接下来我们可以试着创建一个javase项目
#打开cmd窗口输入以下指令
# 生成了java se 项目
mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.woniuxy.build -DartifactId=demo
#默认选择7: internal -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
#默认版本号为:Define value for property 'version' 1.0-SNAPSHOT:
#再次确认groupId: com.woniuxy.build
#artifactId: demo
#version: 1.0-SNAPSHOT
#package: com.woniuxy.build
#确认后生成一个名叫demo的javase项目
# 在pom.xml的目录下运行项目
mvn clean compile exec:java -Dexec.mainClass="com.woniuxy.build.App"
# 打包
mvn package