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坐标和依赖的更多相关文章

  1. 03 Maven 坐标与依赖

    Maven 坐标与依赖 Maven 的一大功能是管理项目依赖.为了能自动化地解析任何一个 Java 构件, Maven 就必须将它们唯一标识,这就依赖管理的底层基础 一一 坐标.本章将详细分析 Mav ...

  2. 4.Maven概念模型,maven的生命周期,Maven坐标,依赖管理(依赖范围,依赖声明),仓库管理,私服概念

     1 maven概念模型 2 maven的生命周期,项目构建过程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg== ...

  3. 3.Maven坐标和依赖

    1.1 何为Maven坐标 正如之前所说的,Maven的一大功能就是管理项目依赖.为了能自动化地解析任何一个Java构件,Maven就必须将它们唯一标识,这就依赖管理的底层基础——坐标. 1.2 坐标 ...

  4. maven坐标及依赖范围的学习(1)

    首先,我们先了解什么是maven的坐标(重中之重): 在这里我们可以看到那三个红色的行,基本是pom.xml中出现的最多的配置     例如这个配置:这里我们可以看到我们这个项目的pom文件中,他对名 ...

  5. 【Maven】---坐标与依赖

    Maven坐标与依赖 最近想深度学习下maven,找到一本书叫<Maven实战>,这本书讲的确实很好,唯一遗憾的是当时maven教学版本是3.0.0的,而目前已经到了3.5.4了,版本存在 ...

  6. Maven学习笔记—坐标和依赖

    Maven的坐标和依赖 1 Maven坐标 1.1 什么是Maven坐标 Maven坐标:世界上任何一组构件都可以使用Maven坐标来唯一标识,Maven坐标的元素包括groupId.artifact ...

  7. Maven学习(二) -- 坐标和依赖

    标签(空格分隔): 学习笔记 坐标 实际就像在几何中,我们用一对坐标(x, y)来表示坐标系中唯一的点:或者我们可以用(经度,纬度)来表示地球上的某一个位置,在Maven的世界中,有坐标来唯一的表示项 ...

  8. Maven之——坐标和依赖(上)

    Maven之--坐标和依赖(上) 1.    Maven坐标概念 Maven通过构件的坐标来在Maven仓库中定位到详细的构件.Maven的坐标元素包含groupId.artifactId.versi ...

  9. Maven学习笔记2(坐标和依赖)

    1.坐标 Maven坐标为各个构件建立了秩序,任何一个构件都必须明确自己的坐标,一个maven坐标是由一些元素确定的 <groupId>com.alivn.account</grou ...

  10. 《Maven实战》第5章 坐标和依赖

    5.1 Maven坐标——项目唯一标识 groupId(必须定义):定义Mavan项目隶属的实际项目,如SpringFramework,一个实际项目可包含多个Maven项目 artifactId(必须 ...

随机推荐

  1. mysql中创建用户和赋权限

    mysql命令行用的不多,大部分使用工具类替代,所以这里记录下命令行模式下创建用户和赋予权限的命令,不用每次麻烦百度. 1. 创建oozie用户,%符号表示仅限于远程登录 create user 'o ...

  2. python解析文本文件演示样例

    目的:查找文本中还有Sum/Avg的行中低三个竖线后第一个浮点数 思路:先使用python读取文本中一行,然后切割字符串.查找含有Sum/Avgkeyword的行.取出想要的结果 文本局部: .... ...

  3. 【BZOJ】1029: [JSOI2007]建筑抢修(贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1029 按右端点排序后依次加入,并且每一次看是否能被修筑,如果能就修:否则查找原来修过的,如果原来修过 ...

  4. 【BZOJ】1628 && 1683: [Usaco2007 Demo]City skyline 城市地平线(单调栈)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1628 http://www.lydsy.com/JudgeOnline/problem.php?id ...

  5. storm的集群安装与配置

    storm集群安装 机器:(storm及zookeeper都是这3台机器) 192.168.80.20 192.168.80.21 192.168.80.22 须要准备的软件有: zookeeper( ...

  6. .NET Entity Framework(EF)使用SqlQuery直接操作SQL查询语句或者执行过程

    Entity Framework是微软出品的高级ORM框架,大多数.NET开发者对这个ORM框架应该不会陌生.本文主要罗列在.NET(ASP.NET/WINFORM)应用程序开发中使用Entity F ...

  7. Linux kernel parameter command line设置

    现在CPU2核以上比较普遍了,平时用linux上上网可能用不着双核甚至4核,大部分发行版内核都启用了CPU_HOTPLUG,到/sys/devices/system/cpu下可以看到文件夹cpu0.c ...

  8. a &a &a[0]之间的区别和联系

    数组中,a为数组的首地址,&a[0]为数组第一个元素的地址. 所以 a == &a[0] 但是,&a又是什么东西呢? 我们来做下面的代码测试: #include <std ...

  9. Python 正则表达式贪婪模式

    贪婪模式也就是我们使用 .* 匹配任意字符时会尽可能长地向后匹配,如果我们想阻止这种贪婪模式,需要加个问号,尽可能少地匹配,如下例子: In []: import re In []: html = ' ...

  10. 第三篇:C++ 中的几种初始化

    前言 阅读C++教材时,想必你听过复制初始化,直接初始化,值初始化这三个概念吧.笔者本人常将其混淆,遂在此记录下它们的具体含义以便日后查阅. 复制初始化( copy-initialization ) ...