zoukankan      html  css  js  c++  java
  • 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 分析编译主代码和测试代码需要用的的依赖

  • 相关阅读:
    HTML5: HTML5 Video(视频)
    HTML5: HTML5 Geolocation(地理定位)
    HTML5: HTML5 拖放
    HTML5: HTML5 MathML
    HTML5: HTML5 内联 SVG
    HTML5: HTML5 Canvas
    HTML5: HTML5 新元素
    HTML5: 浏览器支持
    HTML5: HTML5 介绍
    HTML5: 目录
  • 原文地址:https://www.cnblogs.com/bjlhx/p/9037151.html
Copyright © 2011-2022 走看看