一.Maven的依赖作用域scope

  1. compile:编译、测试、运行都会依赖,会打进包中。
  2. rumtime:不存于编译,后期运行和测试都会参与,会打进包中。
  3. test:只在test classpath下
  4. provider:提供编译期使用,但是不会打进包中
  5. import:下面说到了子项目使用父项目的dependencyManagement,但是这种情况需要继承,但是在maven中也体现了面向对象的思想,只能继承一个。那么就无法对另一个依赖做依赖管理了。
    maven提供了组合形式:import,可以将另一个依赖导入进来做依赖管理:

    example
    super-parent

    example
    parent


    org.springframework.boot
    spring-boot-dependencies
    ${spring-boot.version}
    pom
    import

    那样无形中继承parent的子项目就可以对super-parent和spring-boot-dependencies的依赖分别做依赖声明了。表现上,就是parent项目继承了两个父项目,对super-parent和spring-boot-dependencies都做了依赖管理。

  6. system

二.可选的依赖传递optional

管理传递的依赖作用域的。默认情况下(无optional配置,即optional为false)时,maven都会进行依赖传递,即:A->B,B->C => A->C。但是有时候需要禁止这种依赖传递:
将optional设置为true,意为可选:
B->(optional)C,A/->C。如果A需要继续依赖C,则A显示指定依赖对C的依赖。

三.继承中的依赖管理dependencyManagement

用于子项目继承父项目时,子项目只要声明依赖即可。依赖的定义在父项目中的dependencyManagement管理即可!

Maven中的依赖相关总结的更多相关文章

  1. 【Maven】Maven中排除依赖、归类依赖、优化依赖

    参考博文:Maven中排除依赖.归类依赖.优化依赖

  2. maven中把依赖的JAR包一起打包(转)

    转自:http://lvjun106.iteye.com/blog/1849803 这里所用到的MAVEN-PLUGIN是MAVNE-ASSEMBLY-PLUGIN 官方网站是:http://mave ...

  3. 解决maven中某些依赖无法下载,手动安装Maven依赖

    <!--先下载jar包,然后在仓库中手动安装,下面是遇到的两个例子--> <!--第一个--> mvn install:install-file -Dfile=D:\kaptc ...

  4. maven中把依赖的JAR包一起打包

    <buizld> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId ...

  5. Maven中解决依赖冲突的问题

    1.短路优先:谁离得最近就使用谁的依赖jar包 C到达A为C->B->A C到达B为C->B 例如: A中的 commons-io的版本为2.4 B中的commons-io的版本为2 ...

  6. IDEA中快速排除maven中的依赖

    选中该模块 点击show dependenties 切换试图 选中要排除的依赖,右击 选择Execlude,然后选择需要在哪个模块添加排除依赖 完成

  7. maven 中的依赖

  8. 项目开发中Maven的单向依赖-2022新项目

    一.业务场景 工作多年,在真实的项目开发中经常会遇到将一个项目拆分成多个工程的情况,比如将一个真实的项目拆分成controller层,service层, dao层,common公共服务层等等.这样拆分 ...

  9. Maven中的pom.xml配置文件详解

    原文:http://blog.csdn.net/u012152619/article/details/51485297 <project xmlns="http://maven.apa ...

随机推荐

  1. Web点击链接调起手机系统自带短信发短信

    实现代码如下: 一.Html代码 <a href="javascript:;" class="xq-sms">发送短信</a> 二.jQ ...

  2. 【设计模式】Builder

    前言 Builder设计模式,允许一步一步构建一个复杂的对象.将构建步骤抽象出来,让每个具体的Builder去实现构建步骤的内容.这样子就可以用同样的构建步骤,构建出不一样的对象.在Director类 ...

  3. mybatis if-else用法

    demo: <select id="queryRuralCodes" resultType="string" parameterType="ma ...

  4. RPC 初识

    RPC是什么 RPC(Remote Procedure Call) 释义是远程过程调用,常存在于分布式系统中. 比如说现在有两台服务器A, B,一个在A服务器上的应用想要调用B服务器上的应用提供的某个 ...

  5. [linux] shell脚本编程-统计日志文件中的设备号发通知邮件

    1.日志文件列表 比如:/data1/logs/2019/08/15/ 10.1.1.1.log.gz 10.1.1.2.log.gz 2.统计日志中的某关键字shell脚本 zcat *.gz|gr ...

  6. Centos7安装和配置Tomcat8

    第一步:下载Tomcat8压缩包 进入 http://tomcat.apache.org/download-80.cgi 下载tar.gz压缩包 第二步:用xshell工具把压缩包上传到/home/d ...

  7. Python元组与字符串操作(9)——随机数、元组、命名元组

    随机数 import random #导入random模块 randint(a,b) 返回[a,b]之间的整数 random.randint(0,9) randrange([start],stop,[ ...

  8. jquery实现一些小动画二

    jquery实现一些小动画二 jquery实现拖拽功能 <!DOCTYPE html> <html lang="en"> <head> < ...

  9. Dart Flutter

    下载Flutter Google下载地址: https://storage.googleapis.com/dart-archive/channels/stable/release/2.3.0/sdk/ ...

  10. 笔记14:Docker 部署Python项目

    Docker 部署Python项目 导读: 软件开发最大的麻烦事之一就是环境配置,操作系统设置,各种库和组件的安装.只有它们都正确,软件才能运行.如果从一种操作系统里面运行另一种操作系统,通常我们采取 ...