- 浏览: 188309 次
- 性别:
- 来自: 上海
文章分类
最新评论
今天我在配置 sellercenter 的接口测试环境的时候,发现一些依赖的写法不太一致:
比如有的依赖的<scope>是写在子项目中的 <dependencies> 下的<dependency> 标签中,
而有的依赖的<scope>是写在父项目中的<dependencyManagement> 中 。
我知道前一种写法是对的,而后一种写法却不知道对不对了,从网上查了下,没有找到非常确切的答案,于是自己验证了一把。
把验证过程给大家说下,大家也可以自己练手。
首先新建三个项目,Parent作为父项目、projectA、projectB作为子项目。
在父项目Parent中依赖项如下:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
在子项目projectA、projectB中没有写任何依赖,在projectA 下运行命令 mvn help:effective-pom,会发现A下面有 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>
子项目ProjectA、projectB下面还是没有任何依赖项,在projectA 下运行命令 mvn help:effective-pom,会发现A下面 没有 junit 4.8.1的依赖。
如果我在projectA 下添加junit的依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
再在projectA 下运行命令 mvn help:effective-pom,会发现A下面有了 junit 4.8.1的依赖,并且scope为 test。
那么经过验证,scope写在子项目中的<dependencies> 下的<dependency>中,或是写在父项目中的<dependencyManagement>中,都是可以的。
但有一点需要注意,dependencies 和 dependencyManagement 的区别在于:
前者,即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项。
后者,如果在子项目中不写该依赖项,那么子项目中是不会从父项目继承该依赖项的;只有在子项目中写了该依赖项,才会从父项目中继承该项,并且version 和 scope 都读取自 父pom
转自http://blog.sina.com.cn/s/blog_6125fe5d0100zxrz.html
发表评论
文章已被作者锁定,不允许评论。
-
Tomcat的四种基于HTTP协议的Connector性能比较
2017-11-28 10:39 531今天在osc上看到对Tomcat的四种基于HTTP协议的Con ... -
Jetty项目简介
2016-11-07 11:28 444jetty是一个开源、基于标准、全功能实现的Java服务器。它 ... -
windows7 64位下git和tortoisegit的安装和使用
2016-09-08 11:35 1556git https://github.com/git-for- ... -
ActiveMQ的集群多种部署方式
2016-08-15 16:56 673ActiveMQ的多种部署方式 ... -
待查看
2016-08-02 09:41 4011tair 2 tddl 3hsf 4 分库分表 pmd ... -
redis 原理
2016-07-10 14:50 8321 什么是redis redis是一个key-value存储 ... -
mybatis 帮助文档
2016-04-22 11:01 494http://www.mybatis.org/mybatis- ... -
Zabbix 监控
2016-04-11 09:54 412 -
jvm实时监控工具
2016-04-09 09:35 461 -
redis学习(java调用方式)
2016-04-07 17:56 486【redis数据结构 – 简介 ... -
SonarQube代码质量管理平台安装与使用
2016-03-21 16:13 491代码质量管理工具 http://blog.csdn.net/h ... -
jboss web服务器
2016-03-17 14:15 431 -
cat监控
2016-03-16 15:22 467 -
activeMq分发策略,请求应答
2016-02-16 10:41 696 -
Eclipse下使用TODO的方法
2016-01-22 13:48 800下面是在Eclipse下使用TODO的方法。 ------- ... -
zookeeper
2015-12-07 20:29 428zookeeper -
Xshell会话共享实现多台服务器同步操作
2015-11-30 17:50 25171. 打开终端Xshell, 菜单栏View -> 勾 ... -
Tomcat出现 PermGen space解决方案
2015-06-10 16:06 339PermGen space的全称是Permanent Gene ... -
eclipse 代码注释项
2015-06-09 09:03 477comments files:新建文件时候的文件注释,在pac ... -
跨数据库事务研究
2015-05-12 11:16 868两种方案: 1、分布式 ...
相关推荐
今天,我们将详细介绍 Maven 依赖管理机制中的两个重要概念:dependencies 和 dependencyManagement。 dependencies dependencies 是 Maven 项目中最基本的依赖管理机制。它定义了项目中需要的依赖项,包括 jar 包...
在pom.xml文件中,我们可以通过<dependencyManagement>标签来定义统一的依赖版本,子模块可以直接引用而不必指定具体版本。 接下来,我们来看看资源包中的内容。"maven-dependencies"包含了最新的Maven依赖集合,...
If you are working with Java or Java EE projects and you want to take advantage of Maven dependency management, then this book is ideal for you. This book is also particularly useful if you are a ...
1、dependencies 和 dependencyManagement,plugins 和 pluginManagement 有什么区别? dependencyManagement 是表⽰依赖 jar 包的声明,即你在项⽬中的 dependencyManagement 下声明了依赖,maven 不会加 载该依赖...
在Maven项目中,`dependencyManagement`和`dependencies`元素都是用来管理项目依赖的重要部分,但它们的作用方式有所不同。理解这两个元素的区别对于构建稳定、可维护的多模块项目至关重要。 一、dependency...
当多个依赖有相同的`groupId`和`artifactId`但不同版本时,Maven会根据`dependencyManagement`来解决冲突。 4. **测试框架集成** Maven支持与JUnit、TestNG等测试框架集成,通过`maven-surefire-plugin`插件运行...
Learn how to use Gradle's powerful dependency management through extensive code samples, and discover how to define, customize, and deploy dependencies About This Book Be in total control of your ...
在两个版本中,Maven 都会使用`<dependencies>`标签来声明项目所需的库,并使用`<dependencyManagement>`来统一管理版本。 - Maven 3.8 在依赖解析方面可能更加智能,减少了不必要的下载和冲突。 3. **插件管理**...
1. **dependencies 和 dependencyManagement,plugins 和 pluginManagement 的区别** - `dependencyManagement` 是用来声明依赖管理的,它不直接引入jar包,而是定义了一组依赖的默认版本。当子项目引用这些依赖时...
如果无法解决冲突,可以使用`dependencyManagement`标签来统一管理所有模块的依赖版本。 总的来说,Maven的依赖管理是其强大功能的一部分,它极大地简化了Java项目的构建流程,让开发者能够更专注于代码编写,而...
这样,您可以确保您不会浪费时间在Apache Maven范围之外的东西上。 假设您的问题不存在,请提交该问题的票证。 清楚地描述问题,包括在出现错误时重现的步骤。 确保填写您知道存在问题的最早版本。 在GitHub上...
`dependencyManagement`元素用来管理依赖版本,使得在子模块中只需要声明groupId和artifactId,版本号会自动继承自父模块。`build`元素包含了编译、测试、打包、部署等构建过程的配置。 Maven的仓库系统是其能够...
- **合理管理依赖**:避免硬编码版本号,使用`<dependencyManagement>`元素统一管理版本。 - **使用父POM**:对于多模块项目,创建一个父POM来共享共通的配置。 - **持续集成**:结合Jenkins、Git等工具实现自动化...
在现代软件开发中,项目往往...总结,Maven在多模块开发中的作用主要体现在统一项目配置、管理依赖、简化构建流程和提高团队协作效率等方面。通过合理地使用Maven,开发者可以更加专注于业务逻辑,而非项目构建的琐事。
此外,掌握`dependencyManagement`和`dependencies`的区别也是很重要的。 ### 优化本地仓库 为了提高效率,可以通过以下方式优化Maven本地仓库: 1. 使用代理服务器:对于企业环境,可以通过配置Maven使用内部的...
通过在根 POM 中定义 `<dependencyManagement>` 标签,我们可以指定一组依赖的版本,子模块在引用这些依赖时无需指定具体版本,简化了版本管理。例如: ```xml <dependencyManagement> <dependencies> ...
Maven通过POM中的`<dependencies>`标签管理项目所需的库。它会自动下载这些依赖及其传递性依赖,避免了库冲突问题。 3. **仓库(Repository)** Maven使用仓库系统来存储和检索依赖。默认本地仓库位于用户主目录...
Maven通过`pom.xml`中的`dependencyManagement`元素来集中管理多个模块的依赖版本,确保项目的一致性。 ### 10. 多模块项目 对于包含多个子项目的大型项目,可以使用Maven的聚合项目(aggregator project)和模块...
2. **依赖管理(Dependency Management)**:Maven通过POM中的<dependencies>元素管理项目所需的各种库。它自动下载这些库并将其添加到类路径中,解决了Java项目中常见的“jar地狱”问题。 3. **仓库(Repository)...
Maven是Java开发中的一个项目管理工具,它的核心功能在于构建、依赖管理和项目信息管理。Maven通过使用一个统一的项目对象模型(Project Object Model, POM)来描述项目,并基于一组预定义的生命周期和构建阶段来...