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. ansible IP

    问题解决了,用IP: "{{ ansible_eth0'ipv4' }}" 而不是{{ansible_all_ipv4_addresses}} 修改了之后的playbook 如下: ...

  2. KMP算法完整教程 (上)

    KMP算法完整教程 全称: Knuth_Morris_Pratt Algorithm(KMP算法) 类型: 高级检索算法 功能: 字符串匹配查找 提出者: D.E.Knuth(克努兹),J.H.Mor ...

  3. C#调用SQL Server有参的存储过程

    一.使用SqlParameter的方式 代码: using System; using System.Collections.Generic; using System.ComponentModel; ...

  4. [mysql] Navicat for mysql_导入导出表结构

    应用场景: 当 ① 由于权限控制,远程数据库在外网不能访问 ② 远程数据库连接和查询比较慢,影响工作效率 这时,可以将远程数据库的表结构和已有数据COPY到本地的mysql服务器来进行开发. 只需要将 ...

  5. Linux命令在线中文手册

    很好的Linux学习手册:http://linux.51yip.com/ 来源:http://blog.51yip.com/

  6. MySQL [Err]1449 : The user specified as a definer ('root'@'%') does not exist

    权限问题:授权 给 root 所有sql 权限 mysql> grant all privileges on *.* to root@"%" identified by &q ...

  7. C++之运算符重载

     C++ Code  12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...

  8. Spring配置文件总结

    http://blog.csdn.net/zhejingyuan/article/details/41042789

  9. 关于Bootstrap的理解

    Web开发领域存在大量的反复劳动.以创建一个菜单为例,不同的人或是同一个人在不同的时期去构建一个菜单.他创建出来的菜单格式都会存在差异:随着构件的菜单越来越多,我们会发现假设将构建菜单这件事形成一个框 ...

  10. ios开发之 -- 单例类

    单例模式是一种软件设计模式,再它的核心结构中指包含一个被称为单例类的特殊类. 通过单例模式可以保证系统中一个类只有一个势力而且该势力易于外界访问,从而方便对势力个数的控制并节约系统资源.如果希望在系统 ...