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是一样的道理。


java依赖管理工具maven

  • 2014年06月21日 16:08
  • 6.66MB
  • 下载

AndroidStudio使用进阶二:搭建自己的maven私服,并使用Gradle统一依赖管理

配置maven私服,使用gradle统一依赖管理,已项目演示的方式,将配置文件贴出,一看就懂。达到的目的:依赖关系在config.gradle中一目了然,需要修改时非常方便,使用maven私服更加灵活...
  • JF_1994
  • JF_1994
  • 2016年04月23日 21:54
  • 6214

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

1.JDK环境 目前大多数IDE都没有集成JDK环境,IDEA也是一样,在使用IDEA之前首先要安装JDK,并且配置环境变量。与其他IDE不同之处在于,IDEA不会自动匹配系统的JDK环境,编译时会提...

maven 项目依赖管理

刚到目前的公司时,人家问我玩过maven吗?“maven"什么是maven?由于之前待的公司没有用到这方面的东西。所以根本就不同。后来私底下问问同事,人家告诉我“maven就是一个管理依赖的工具“--...

Maven实战(五)-- 依赖管理

1.依赖配置 dependencies> dependency> groupId>junitgroupId> artifactId>junit...

maven依赖的版本管理

使用变量进行管理 定义一个版本号的变量 4.3.7.REALEASE 所有spring的jar版本都使用变量来定义版本: org.springframework spring...
  • hj7jay
  • hj7jay
  • 2017年03月08日 09:35
  • 485

Maven知识点扫盲(二)依赖管理

DependencyManagement引入在多模块的项目中,如果在父pom中使用dependencies来管理依赖,那么在子模块中,无论是否需要父pom中的依赖,都会强制的继承过来,这样就不太有很好...

Maven-13依赖管理

Maven提供dependencyManagement元素既能让子模块继承到父模块的依赖配置,又能保证自模块依赖的使用灵活性。(有选择的继承) 可在accout-parent中加入:   ...

Maven管理依赖

"If I have seen further it is by standing on the shoulders of Giants" —— Isaac Newton (1642-1727) ...

Maven的依赖管理

Maven的其中一个核心特征是依赖管理。管理依赖关系变得困难的任务一旦我们处理多模块项目(包含数百个模块/子项目)。 Maven提供了一个高程度的控制来管理这样的场景。 传递依赖发现 这是...
  • inslow
  • inslow
  • 2017年01月09日 18:18
  • 112
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:maven依赖管理
举报原因:
原因补充:

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