dependencyManagement和dependencies的区别

参考:http://zhaoshijie.iteye.com/blog/2094478
http://blog.csdn.net/cpf2016/article/details/45674377

还有一篇转载文章也说得很详细,见:http://blog.csdn.net/jiangyu1013/article/details/52424672

modelVersion:声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。
parent:引入父级pom文件。
groupId:公司名称、组织名称、项目开发者,配置时生成路径也是由此生成(包名,如com.XXX)。
artifactId:项目通用名称。
version:对应项目版本号。
packaging:打包后的类型。如war、jar、maven-plugin、ejb、pom、ear、par、rar
name:用户描述项目的名称,可选。
url:项目主页的URL, Maven产生文档时用。

exclusions:排除管理(写在dependency中)。
exclusion:具体要排除的依赖项。
repositories:仓库管理。
repository:具体仓库(有id、name、url子元素)。
properties:自定义标签管理(可在其内自定义标签名、值,用法同于el表达式:${标签名}得到其值),常用于集中定义依赖版本号。
scope:管理部署(可以使用5个值:

* compile,缺省值,适用于所有阶段,会随着项目一起发布。 
    * provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 
    * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 
    * test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
    * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
  )。

dependencies:依赖,jar包管理。
dependency:具体的依赖项。
dependencyManagement:依赖,jar包管理。

dependencyManagement和dependencies区别:
 1)dependencies:自动引入声明在dependencies里的所有依赖,并默认被所有的子项目继承。如果项目中不写依赖项,则会从父项目

继承(属性全部继承)声明在父项目dependencies里的依赖项。
 2)dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要的依赖。如果不在子项目中声明依赖,

是不会从父项目中继承的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取

自父pom;如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。同时dependencyManagement让子项目引用依赖,而不用显示的列

出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个

dependencyManagement元素中指定的版本号,实现所有子项目使用的依赖项为同一版本。
 3)dependencyManagement 中的 dependencies 并不影响项目的依赖项;而独立dependencies元素则影响项目的依赖项。只有当外

层的dependencies元素中没有指明版本信息时,dependencyManagement 中的 dependencies 元素才起作用。一个是项目依赖,一个是maven

项目多模块情况时作依赖管理控制的。
 4)pluginManagement和plugins 区别相似,只不过它们用于管理plugin。

[html]  view plain copy print?

build:全局配置(project build),针对当前项目的所有情况都有效。自定义配置(profile build)针对不同的profile配置。
defaultGoal:执行build任务时,如果没有指定目标,将使用的默认值。
finalName:build目标文件的名称,默认情况为${artifactId}-${version}。
include:指定哪些文件将被匹配,以*作为通配符。
excludes:指定哪些文件将被忽略。
resources:用于包含或者排除某些资源文件。
testResources:定义和resource类似,只不过在test时使用
directory:build目标文件的存放目录,就是定义resource文件所在的文件夹,默认在${basedir}/target目录。

plugins:指定使用的插件。

configuration:配置该plugin期望得到的properties。

另外:

modules:一个项目有多个平级模块,也叫做多重模块,或者合成项目,modules实现平级模块管理。
module:具体模块名称(标明该模块和artifactId标签中模块平级),是project标签的子元素。

profiles:自定义配置信息管理
profile:具体自定义配置(可以在不同环境下使用不同的配制文件)
activation:profile的子元素,指该配置的激活条件。Activation是profile的开启钥匙,但不是激活profile的唯一方式。
jdk:当匹配的jdk被检测到,profile被激活。
os:用法同于jdk,当匹配的操作系统属性被检测到,profile被激活。

dependencyManagement和dependencies的区别相关推荐

  1. dependencyManagement与dependencies的区别

    dependencyManagement:用于父类管理,一般顶层的父类pom才有 能让所有在子项目中引用一个依赖而不用显式的列出版本号 dependencyManagement里只是声明依赖,并不实现 ...

  2. maven 中 pom.xml 配置文件标签说明,dependencyManagement和dependencies区别

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 参考:http://zhaoshijie.iteye.com/blog/2094478 http:/ ...

  3. dependencyManagement与dependencies区别

    一.dependencyManagement应用场景 为了项目的正确运行,必须让所有的子模块使用依赖项的统一版本,必须确保应用的各个项目的依赖项和版本一致,才能保证测试的和发布的是相同的结果.在我们项 ...

  4. Maven中dependencyManagement标签和dependencies的区别

    今天在maven的pom文件中看到了dependencyManagement标签,用法如下: <dependencyManagement><dependencies><d ...

  5. cmenu 隐藏子项中的一个子项_区分Maven中dependencyManagement与dependencies的作用

    导读:使用maven是为了更好的帮项目管理包依赖,maven的核心就是pom.xml.而maven中有许多的标签,下面我们主要讨论parent.dependencies与dependencyManag ...

  6. maven中DependencyManagement和Dependencies

    上次这边朋友问我一个问题,就是他们在pom.xml中的dependency中,看到有一些是<scope>provided</scope>的情况,比如如下: 双击代码全选 1 2 ...

  7. devDependencies和dependencies的区别

    我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,比如: --save-dev --save 在 package.json 文件里面 ...

  8. Maven dependencymanagement vs dependencies

    dependencyManagement集中管理依赖版本,dependencies节点声明依赖,并从父项目中继承版本号. dependencyManagement允许在不添加所有子继承的依赖项的情况下 ...

  9. devDependencies 和 Dependencies 的区别

    安装的命令区别 npm install react --savenpm install eslint --save-dev 使用场景 如果是自己项目中使用,其实没有什么本质区别,每次执行npm ins ...

最新文章

  1. 怎么在CSDN中写微信公众号推文?
  2. 成为程序员ing日记
  3. mysql语句:索引,游标,存储过程,视图,分区,分库分表,数据库集群,数据库负载均衡...
  4. 重磅!微软发布 vscode.dev,把 VSCode 带入浏览器!
  5. ENVI支持下利用高分辨率影像城市绿地信息提取方案
  6. Coding Pages 申请 SSL 证书错误:urn:acme:error:unauthorized: Invalid response from http://xxxxx/
  7. MySQL创建不了计划任务_MySQL创建定时任务(或计划任务)
  8. 7月31日云栖精选夜读 | 在浏览器上也能训练神经网络?TensorFlow.js带你玩游戏~...
  9. 漫步最优化十八——点到集合的映射
  10. SQLite学习总结(3)——SQLite命令及语法
  11. ant部署web工程模板
  12. Maven-打包的时候丢失非.java的文件
  13. HP/Aruba 2620系列交换机DHCP中继配置方法
  14. async await 的用法
  15. Python下载(Windows)
  16. HDU5828 Rikka with Sequence
  17. Ubuntu 上搭建 TFTP 服务器
  18. 计算机应用基础好不好考,计算机应用基础好考么
  19. 解决Macbook安装win10/win11时遇到的WDF_Violation 蓝屏错误问题 - 安装Bootcamp驱动蓝屏
  20. python基础视频课件

热门文章

  1. 51单片机学习1:C语言基础
  2. android mkdir命令,cat命令,adb命令,am命令,ls命令
  3. 多维度了解一对多远程培训系统
  4. 从1G说到5G:科技改变生活
  5. HTTP Status Codes
  6. 关键信息基础设施(RVA)安全保护要点分析
  7. JDBC如何破坏双亲委派机制
  8. python中blit的意思_在python中,如何在特定图像的区域内blit图像?
  9. kafka-manager监控kafka集群启动失败
  10. 阿拉伯数字转换成对应的大写中文输出