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
  • 下载

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

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

Maven-13依赖管理

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

Maven管理依赖

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

maven 项目依赖管理

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

Maven 核心概念——依赖管理

Maven依赖管理(Dependency   Management )     一个复杂的项目将会包含很多依赖,也有可能包含依赖于其它构件的依赖。这是Maven最强大的特征之一,它支持了传递性依赖(...

Maven的依赖管理

Maven的其中一个核心特征是依赖管理。管理依赖关系变得困难的任务一旦我们处理多模块项目(包含数百个模块/子项目)。 Maven提供了一个高程度的控制来管理这样的场景。 传递依赖发现 这是...

Missing artifact com.sun:tools:jar:1.5.0 Maven依赖管理pom.xml中添加struts2-core包后报错的解决办法

方法一: 在eclipse安装目录下找到eclipse.ini文件,在-vmargs参数上面(前面)追加vm参数,以下是一个例子: -vm C:\Program Files...

maven依赖的版本管理

使用变量进行管理 定义一个版本号的变量 4.3.7.REALEASE 所有spring的jar版本都使用变量来定义版本: org.springframework spring...

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

DependencyManagement引入在多模块的项目中,如果在父pom中使用dependencies来管理依赖,那么在子模块中,无论是否需要父pom中的依赖,都会强制的继承过来,这样就不太有很好...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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