zoukankan      html  css  js  c++  java
  • maven笔记(4)

    项目管理利器(Maven)——依赖范围(classPath:编译,运行,测试)
    1.compile:默认范围,编译测试运行都有效
    2.provided:在编译和测试时有效
    3.runtime:在测试和运行时有效
    4.test:只在测试时有效
    5.system:在编译和测试时有效,与本机系统关联,可移植性差
    6.import:导入的范围,它只使用在dependencyManagement中,表示从其他的pom中导入dependency的配置

    项目管理利器(Maven)——依赖传递
    假设B项目依赖A项目,C项目又依赖B项目,那么在C项目中运行compile时,在引进B项目的同时,自动就把A项目也引进来了。如果不想将A项目导入的话,可以使用exclusions下设置exclusion,然后将A项目的坐标添加即可。

    exclusions>
    <exclusion>
    --引入传递依赖的坐标 实现剔除某个传递依赖
    </exclusion>
    </exclusions>

    项目管理利器(Maven)——依赖冲突
    如果C和D依赖了一个不同版本的相同的构件C。
    ①:短路优先:
    会优先解析路径短的版本(D)。
    A -> B -> C -> X(jar)
    A -> D -> X(jar) 优先解析短的
    ②:先声明先优先:A->C->jar,A->D->jar
    如果路径长度相同,则谁先声明,先解析谁(C)。

    项目管理利器(Maven)——聚合
    1.聚合:如果项目D依赖项目C,项目C依赖项目B,项目B依赖项目A,我们需要一个个安装这项项目,在Maven中有一种方式可以将多个项目一次性安装,这就是聚合的概念。简单讲就是,需要人工多次操作的,只要MAVEN能理解,一次性告诉他,他就能帮我们做这件单调烦人的事情了。——使用<modules></modules>这个标签。
    2.继承:多次使用到的依赖,比如:单元测试,没有必要在所有的项目中都引用一下,此时就可以采用继承的方式来实现,先来一个父级的POM.XML然后再继承此POM.XML

  • 相关阅读:
    20201226 ZooKeeper
    20201220 分布式理论、架构设计(自定义RPC)
    20201217 Cluster模式潜在问题及解决方案、Web服务综合解决方案
    20201216 Nginx
    20201214 Tomcat
    20201209 Spring Boot
    20201206 Spring Data JPA
    20201205 Spring MVC
    20201128 IoC容器设计实现及Spring源码分析
    numpy数组及处理:效率对比
  • 原文地址:https://www.cnblogs.com/YangJavaer/p/5792135.html
Copyright © 2011-2022 走看看