005-maven坐标和依赖
1.何为Maven坐标
groupId、artifactId、version、packaging、classifier
中央仓库:http://repol.maven.org/maven2
2.坐标详解
groupId:隶属的实际项目,域名反向+实际项目;【必须】
artifactId:实际项目中的一个maven项目(模块),实际项目+模块;【必须】
version:版本;【必须】
packaging:jar、war等,【可选】
classifier:附属构件,由附加插件帮助生成【不能直接定义】
3.依赖的配置

type:依赖类型,默认jar
scope:依赖范围
optional:依赖是否可选
exclusions:用来排除传递性依赖
4.依赖范围【scope】
compile:编译依赖范围。默认的,范围在编译、测试、运行三种classpath都有效。示例spring-core
test:测试依赖范围。示例JUnit
provided:已提供依赖范围。在编译和测试时有效,运行时无效。示例servlet-api,编译,测试需要,运行时候,容器提供不需要重复
runtime:运行时依赖范围。对于测试和运行时有效,编译时无效。示例,jdbc驱动实现
system:系统依赖范围。与三种classpath的关系,和provided依赖范围一致,但是,使用system范围的依赖时必须通过systemPath元素显示地指定依赖文件的路径。由于此依赖不是通过Maven仓库解析的。往往与本机系统绑定,可能造成构建的不可移植。慎用。。
import:导入依赖【Maven2.0.9以上】

5.传递性依赖
引用一个包的时候,这个包需要引用其他的依赖项

在Maven仓库会有每个构件的POM,Maven会解析各个直接依赖的POM,将那些必要的间接依赖以传递性依赖的形式映入到当前项目中。

6.依赖调节
项目A:依赖关系A->B->C->X(1.0)、A->D->X(2.0)
调解第一原则:路径最近者优先,【X(2.0)】
项目A:依赖关系A->B->Y(1.0)、A->C->Y(2.0)
调解第二原则:第一声明者优先,【Y(1.0)】
7.可选依赖
8.排除依赖

说明项目A依赖于B,B依赖于C,但是B依赖的C可能是不稳定版本,使用exclusions排除依赖C,引入自己的依赖C 1.1.0

9.归类依赖
属性归类依赖
POM根节点下增加

10.优化依赖
mvn dependency:list 查看依赖列表
mvn dependency:tree 查看依赖树
mvn dependency:analyze 分析编译主代码和测试代码需要用的的依赖
005-maven坐标和依赖的更多相关文章
- 03 Maven 坐标与依赖
Maven 坐标与依赖 Maven 的一大功能是管理项目依赖.为了能自动化地解析任何一个 Java 构件, Maven 就必须将它们唯一标识,这就依赖管理的底层基础 一一 坐标.本章将详细分析 Mav ...
- 4.Maven概念模型,maven的生命周期,Maven坐标,依赖管理(依赖范围,依赖声明),仓库管理,私服概念
1 maven概念模型 2 maven的生命周期,项目构建过程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg== ...
- 3.Maven坐标和依赖
1.1 何为Maven坐标 正如之前所说的,Maven的一大功能就是管理项目依赖.为了能自动化地解析任何一个Java构件,Maven就必须将它们唯一标识,这就依赖管理的底层基础——坐标. 1.2 坐标 ...
- maven坐标及依赖范围的学习(1)
首先,我们先了解什么是maven的坐标(重中之重): 在这里我们可以看到那三个红色的行,基本是pom.xml中出现的最多的配置 例如这个配置:这里我们可以看到我们这个项目的pom文件中,他对名 ...
- 【Maven】---坐标与依赖
Maven坐标与依赖 最近想深度学习下maven,找到一本书叫<Maven实战>,这本书讲的确实很好,唯一遗憾的是当时maven教学版本是3.0.0的,而目前已经到了3.5.4了,版本存在 ...
- Maven学习笔记—坐标和依赖
Maven的坐标和依赖 1 Maven坐标 1.1 什么是Maven坐标 Maven坐标:世界上任何一组构件都可以使用Maven坐标来唯一标识,Maven坐标的元素包括groupId.artifact ...
- Maven学习(二) -- 坐标和依赖
标签(空格分隔): 学习笔记 坐标 实际就像在几何中,我们用一对坐标(x, y)来表示坐标系中唯一的点:或者我们可以用(经度,纬度)来表示地球上的某一个位置,在Maven的世界中,有坐标来唯一的表示项 ...
- Maven之——坐标和依赖(上)
Maven之--坐标和依赖(上) 1. Maven坐标概念 Maven通过构件的坐标来在Maven仓库中定位到详细的构件.Maven的坐标元素包含groupId.artifactId.versi ...
- Maven学习笔记2(坐标和依赖)
1.坐标 Maven坐标为各个构件建立了秩序,任何一个构件都必须明确自己的坐标,一个maven坐标是由一些元素确定的 <groupId>com.alivn.account</grou ...
- 《Maven实战》第5章 坐标和依赖
5.1 Maven坐标——项目唯一标识 groupId(必须定义):定义Mavan项目隶属的实际项目,如SpringFramework,一个实际项目可包含多个Maven项目 artifactId(必须 ...
随机推荐
- WCF服务三:svc文件详解
在前面的文章中讲述过WCF服务的宿主程序主要包括:三种,在那篇文章中,简单的描述了如何把一个WCF服务寄宿到IIS上面,这篇文章中将具体讲述如何把一个WCF服务寄宿到IIS上面. 一.新建一个WCF服 ...
- 向服务器发送josn字符串,服务器端解析
<script type="text/javascript"> $(function () { $("#btnsave").click(functi ...
- 关于Unity中场景视图的使用
1.在任何状态下,按下鼠标中键可以切换到手掌的那个状态,可以移动当前场景 2.在手掌的那个状态,按住鼠标左键是移动场景视图,右键是视角绕着摄像机移动,按住alt+鼠标左键,是绕着指定物体旋转视角 3. ...
- (转)Direct3d 设备丢失 (device lost)
1.什么时候设备丢失 一个Direct3D设备, 有两种状态: 操作状态或丢失状态. 操作状态: 是设备的正常状态, 设备按预期运行, 并且能present所有渲染效果 丢失状态: 所有渲染操作悄然失 ...
- thinkphp相关功能整合系列
thinkphp整合系列之短信验证码.订单通知 thinkphp整合系列之rbac的升级版auth权限管理系统demo thinkphp整合系列之阿里云oss thinkphp整合系列之phpmail ...
- hdu 1147:Pick-up sticks(基本题,判断两线段相交)
Pick-up sticks Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- Ubuntu 16.04 LTS 安装libvips出现”Package vips was not found in the pkg-config search path”
使用libvips来操作图像,libvips的部署参考一个Node.js工程:https://github.com/lovell/sharp 在MAC下安装很顺利,到Linux环境下(Ubuntu 1 ...
- 【翻译】Webpack 4 从0配置到生产模式
查看原文 webpack 4 发布了! webpack 4 作为一个零配置的模块打包器 webpack 是强大的并且有许多独一无二的特点但是有一个痛点就是配置文件. 在中型到大型项目中为webpack ...
- Yii2.0在GridView中下拉过滤筛选的实现
Yii2.0在GridView中下拉过滤筛选的实现 细微的方便也许对于我们的用户来说将会获得最好的体验,用最方便,最快捷,最易操作的方式实现用户需要的功能是我们的工作和职责,今天分享一个在Yii2.0 ...
- json、jsonp的定义和区别
一.区别 简单来说,json是一种数据交换格式,jsonp是一种非官方跨域数据交互协议.json描述的是信息的格式,而jsonp是信息传递双方约定的方法.json返回的是一串数据,而 jsonp返回的 ...