maven依赖管理

原创 2015年11月17日 16:15:24

三个项目,Parent作为父项目、test1、test2作为子项目。

在父项目Parent中依赖项如下:

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>

在子项目test1、test2中没有写任何依赖,在test1下运行命令 mvn help:effective-pom,会发现test1下面有 junit 4.8.1的依赖。

如果我把 父项目Parent 中的依赖修改如下:

 <dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>

子项目test1、test2下面还是没有任何依赖项,在test1下运行命令 mvn help:effective-pom,会发现test1下面 没有 junit 4.8.1的依赖。

如果我在test1 下添加junit的依赖:

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>

再在test1下运行命令 mvn help:effective-pom,会发现test1下面有了 junit 4.8.1的依赖,并且scope为 test。

那么经过验证,scope写在子项目中的<dependencies> 下的<dependency>中,或是写在父项目中的<dependencyManagement>中,都是可以的。

dependencies 和 dependencyManagement 的区别在于:

dependencies :即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项。

dependencyManagement :如果在子项目中不写该依赖项,那么子项目中是不会从父项目继承该依赖项的;只有在子项目中写了该依赖项,才会从父项目中继承该项,并且version 和 scope 都读取自 父pom。

虽然dependencyManagement 没有减少多少配置信息,但从管理上来说更加规范,在需要精简子项目依赖的时候可以使用。


同理插件管理pluginManagement和dependencyManagement是一样的道理。


Maven-依赖管理机制

Dependency Mechanism Java项目开发中肯定需要大量的jar文件,也就是说你要依赖很多已经开发好的jar包。尤其是你要依赖很多开源的东东。有没有感到很迷糊,经常不知道要用到哪些,...
  • orangelizq
  • orangelizq
  • 2011年08月10日 17:00
  • 2422

maven依赖管理和生命周期

maven依赖管理和生命周期
  • hoho_12
  • hoho_12
  • 2016年09月19日 21:37
  • 711

maven 项目依赖管理

Maven,项目构建管理工具,用于告诉编译器项目中各文件之间的依赖关系等。 pom.xml 文件是maven对一个项目的核心配置,这个文件将包含你希望如何构建项目的大多数配置信息。...
  • chuchus
  • chuchus
  • 2014年11月25日 14:37
  • 1013

maven多模块项目依赖管理

项目结构图 Parent `------ childA(BusinessLayer) `--- pom.xml`------ childB(WebLayer) `...
  • wei542657623
  • wei542657623
  • 2017年02月09日 11:03
  • 382

maven去掉本地项目依赖

maven去掉本地项目依赖
  • zhangjq520
  • zhangjq520
  • 2017年05月10日 17:50
  • 160

Maven依赖管理

  • u013734073
  • u013734073
  • 2016年04月05日 22:27
  • 168

【maven】--依赖管理

其中一个Maven的核心特征是依赖管理。管理依赖关系变得困难的任务一旦我们处理多个模块项目(包含数百个模块/子项目)。Maven提供了一个高程度的控制来管理这样的场景。 传递依赖发现 这是很通常情...
  • jing18033612052
  • jing18033612052
  • 2017年12月10日 10:47
  • 51

maven 依赖管理

1. 什么是依赖管理?     项目中会依赖第三方jar包,解决依赖这些jar包出现的冲突、更新升级等问题。 2.  maven 如何依赖?     通过配置maven项目的pom.xml文件进行依赖...
  • convict_eva
  • convict_eva
  • 2016年09月24日 10:42
  • 298

Maven 依赖管理

有人认为Maven是一个依赖管理工具,当然这种想法是错误的(确切的说Maven是一个项目管理工具,贯穿了整个项目生命周期,编译,测试,打包,发布...),但Maven给人造成这种错误的印象也是有原因的...
  • Searching_Bird
  • Searching_Bird
  • 2015年09月17日 10:58
  • 170

IntelliJ IDEA的JDK环境配置和Maven依赖管理

1.JDK环境 目前大多数IDE都没有集成JDK环境,IDEA也是一样,在使用IDEA之前首先要安装JDK,并且配置环境变量。与其他IDE不同之处在于,IDEA不会自动匹配系统的JDK环境,编译时会提...
  • xlxxybz1314
  • xlxxybz1314
  • 2016年04月08日 21:51
  • 5140
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:maven依赖管理
举报原因:
原因补充:

(最多只允许输入30个字)