简介:




重点学习:

1、dependency-scope 依赖范围

  • compile 编译 默认,对编译、测试、运行都有效
  • provided 编译和测试时有效
  • runtime 测试和运行时有效
  • test 测试
  • system 与provided类似,在编译测试时有效,但与本机系统相关联,可移植性差
  • import 导入的范围,它使用在dependencyManagement中,表示从其他pom中导入dependency的配置

2、依赖传递

若项目A依赖B,B依赖C
则在配置pom.xml-dependency后,A的依赖项中也会出现C
若想排除A对C的依赖,在A的pom中配置exclusion

3、依赖冲突

当一个项目通过依赖传递依赖了多个Jar,且这些Jar的版本不同,就会产生依赖冲突
原则:
1、短路优先
A->B->C->X(jar)
A->D->X(jar) 则有限依赖这个版本的X
2、路径相同,先声明先依赖
若路径长度相同,先声明谁优先依赖谁,即优先依赖dependency中写在前面的那个

4、聚合和继承

1、聚合
创建一个容器项目,使用modules引入需要打包的项目

当install该项目时,被引入的所有项目都会一起打包
2、继承
当很多项目都使用同一个包时,可使用dependencyManagement将jar包的配置抽离出来
创建一个父类项目,配置dependencyManagement

将需要引用该包的项目依赖坐标中的版本和范围去掉,并使用parent标签引入父项目

JavaMaven【八、pom.xml】的更多相关文章

  1. Maven实战(八)pom.xml简介

    目录 pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件.开发者需要遵循的规则.缺陷管理系统.组织和licenses.项目的url.项目的依赖 ...

  2. pom.xml文件说明(八)

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  3. Java-Maven(十一):Maven 项目出现pom.xml错误:Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin

    Maven项目出现ERROR: eclipse更新了Maven插件后,让后就出现了以下错误: Description Resource Path Location Type Conflicting l ...

  4. maven pom.xml 说明

    本文复制于:http://blog.csdn.net/zhuxinhua/article/details/5788546 一.pom.xml示例 <project> <modelVe ...

  5. Maven pom.xml文件详解

    Maven pom.xml文件详解 一.简介 POM全称是Project Object Model,即项目对象模型. pom.xml是maven的项目描述文件,它类似与antx的project.xml ...

  6. Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):4、Maven项目转换与pom.xml配置

    文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...

  7. spring maven pom.xml设置

    spring pom.xml设置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...

  8. Maven实战:pom.xml与settings.xml

    pom.xml与settings.xml pom.xml与setting.xml,可以说是Maven中最重要的两个配置文件,决定了Maven的核心功能,虽然之前的文章零零碎碎有提到过pom.xml和s ...

  9. 批量从jar包中提取pom.xml

    将非maven项目转换为maven项目,首要第一步就是提取原工程依赖jar里的pom.xml,拼成<dependency>节点 import java.io.File; import ja ...

  10. Maven的POM.xml配置大全

    <?xml version="1.0" encoding="utf-8"?> <project xmlns="http://mave ...

随机推荐

  1. 类型TTreeView.items.add 与 TTreeView.items.addchild有何区别?(10分)

    我看了书上例子,好象两者都可以实现treeview中的node 的构建. addchild是给当前的node建一个子node,它比当前node要向右缩进几格add建立同级的node,不缩进 aNode ...

  2. SpringBoot: 15.异常处理方式5(通过实现HandlerExceptionResolver类)(转)

    修改异常处理方式4中的全局异常处理controller package com.bjsxt.exception; import org.springframework.context.annotati ...

  3. Ubuntu 16.04 RabbitMq 安装与运行

    前言目前公司用阿里云 + redis 的方式实现的消息队列.了解了目前几种主流的消息组件(主要包括rabbitmq.kafka.)的优缺点后,这里为了深入学习rabbitmq,我在自己的腾讯云服务器上 ...

  4. yso中URLDNS的pop链分析(重新分析整理)

    #发现之前对这个链关注的点有点问题,重新分析了一下 由于最近面试的过程中被问到了yso中URLDNS这个pop链的工作原理,当时面试因为是谈到shiro的怎么检测和怎么攻击时谈到了这个.其实在实战中用 ...

  5. jQuery UI Widget(1.8.1)工作原理

    /*! * jQuery UI Widget 1.8.1 * * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) * Dual l ...

  6. ztree根据ztreeId【节点id】设置展开、选中、触发点击节点事件

    有时候我们要默认选中某个节点,根据ztreeId // 这里的ztreeId就是ztree存放在页面的元素id,比如div的id // treeObj就是ztree对象 var treeObj = $ ...

  7. Linux回收站的路径在哪里?

    linux 回收站的路径:-/.local/share/Trash

  8. 记录一次 hadoop yarn resourceManager无故切换的故障

    某日 收到告警 线上集群rm切换 观察resourcemanager 日志报错如下 这行不明显 再看看其他日志报错 在 app attempt_removed 时候发生了空指针错误 break; ca ...

  9. COGS 2633. [HZOI 2016] 数列操作e

    [题目描述] 一个长度为n的序列,一开始序列数的权值都是0,有m次操作 支持两种操作, 1 L R x,给区间[L,R]内,第一个数加x,第二个数加2^2⋅x,第三个数加3^2⋅x...第R-L+1个 ...

  10. selenium登录百度

    from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.s ...