Maven原理

Maven原理

一、Maven项目结构

1. Maven构建工具

项目依赖管理
管理原本分散在项目各个角落的的项目信息(项目描述、开发者列表、版本控制系统地址、缺陷管理系统地址等)
免费中央仓库,衍生工具Nexus用于快速搜索,依赖包自动下载
约定优于配置(对项目目录结构、测试用例命名方式等内容有既定规则)

2. Maven项目结构

src/main/java:项目java类文件位置
src/main/resources:项目配置资源文件位置
src/test/java:项目单元测试java类文件位置
src/test/resources:项目单元测试配置资源文件位置
target:项目打包后文件所在位置

3. Maven约定优于配置

超级POM:任何一个Maven项目都隐式地继承自一个超级POM,这有点类似于任何一个Java类都隐式地继承于Object类。因此,大量超级POM的配置都会被所有Maven项目继承,这些配置也就成为了Maven所提倡的约定。
对于Maven3,超级POM在文件 $ MAVEN_HOME/lib/maven-moae-builder-x.x.x.jar中的org/apache/maven/model/pom-4.0.0.xml路径下。

在这里插入图片描述

首先超级POM定义了仓库及插件仓库,两者的地址都为中央仓库
http://repo1.maven.org/maven2,并且都关闭了SNAPSHOT的支持。这也就解释了为什么Maven默认就可以按照需要从中央仓库下载构件。

在这里插入图片描述

依次定义了项目的主输出目录、主代码输出目录、最终构件的名称格式、测试代码输出目录、主源码目录、脚本源码目录、测试源码目录、主资源目录和测试资源目录。这就是Maven项目结构的约定。
在这里插入图片描述

二、坐标和依赖

1. Maven坐标

Maven通过groupld、artifactld、version三个变量来唯一确定一个具体的依赖(俗称GAV)

在这里插入图片描述

2. Maven依赖配置

  • groupld,artifactld,version:基本坐标。
  • type:依赖类型,对应项目坐标定义packaging,大部分情况下不需要声明。

3. Maven依赖范围

  • compile:编译依赖范围,在编译,测试,运行时都需要,依赖范围默认值
  • test
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值