maven parent中的dependencies和dependencyManagement区别

首先,写一个maven parent

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.lala</groupId>
	<artifactId>my-parent</artifactId>
	<version>0.0.1</version>
	<packaging>pom</packaging>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>2.4.0</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>javax.mail</groupId>
				<artifactId>javax.mail-api</artifactId>
				<version>1.5.3</version>
				<scope>provided</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.3</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<verbose>true</verbose>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

dependencies里面的依赖是:2.4.0的jedis

dependencyManagement里面的依赖是:1.5.3的java.mail

子模块这样写的话

<parent>
		<groupId>com.lala</groupId>
		<artifactId>my-parent</artifactId>
		<version>0.0.1</version>
	</parent>

会有如下反应:

1:子模块会自动引入父模块的dependencies依赖,而不会自动引入dependencyManagement的依赖

2:dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显式的声明需要用的依赖,而且不需要指定version、scope,系统会自动用父模块的version、scope

maven技术交流 扣扣群  379165311,群里面会不定期分享一些maven文章和教程,欢迎大家加入

时间: 2024-11-05 17:29:56

maven parent中的dependencies和dependencyManagement区别的相关文章

maven中的 dependencies 和 dependencyManagement 的区别

今天我在配置 sellercenter 的接口测试环境的时候,发现一些依赖的写法不太一致: 比如有的依赖的<scope>是写在子项目中的 <dependencies> 下的<dependency> 标签中, 而有的依赖的<scope>是写在父项目中的<dependencyManagement> 中 . 我知道前一种写法是对的,而后一种写法却不知道对不对了,从网上查了下,没有找到非常确切的答案,于是自己验证了一把. 把验证过程给大家说下,大家也可以

maven中pom的继承以及dependencies与dependencyManagement的区别

https://blog.csdn.net/zzm3280/article/details/84952623 分类专栏: maven 本文转自:https://blog.csdn.net/liutengteng130/article/details/46991829 如有侵权马上删除在上一个项目中遇到一些jar包冲突的问题,之后还有很多人分不清楚dependencies与dependencyManagement的区别,本篇文章将这些区别总结下来. 1.DepencyManagement应用场景当

maven中pom.xml中配置整理: groupId、artifactId、parent、dependency、dependencyManagement区别

1 <groupId>com.mycompany.commonmaven</groupId> 2 <artifactId>commonmaven</artifactId> 3 <version>0.0.1-SNAPSHOT</version> 4 <packaging>jar</packaging> 5 <name>common_maven</name> groupId 定义了项目属于哪

Maven实战(六)--- dependencies与dependencyManagement的区别

在上一个项目中遇到一些jar包冲突的问题,之后还有很多人分不清楚dependencies与dependencyManagement的区别,本篇文章将这些区别总结下来. 1.DepencyManagement应用场景 当我们的项目模块很多的时候,我们使用Maven管理项目非常方便,帮助我们管理构建.文档.报告.依赖.scms.发布.分发的方法.可以方便的编译代码.进行依赖管理.管理二进制库等等. 由于我们的模块很多,所以我们又抽象了一层,抽出一个itoo-base-parent来管理子项目的公共的

转】Maven实战(六)--- dependencies与dependencyManagement的区别

原博文出自于:http://blog.csdn.net/liutengteng130/article/details/46991829   感谢! 在上一个项目中遇到一些jar包冲突的问题,之后还有很多人分不清楚dependencies与dependencyManagement的区别,本篇文章将这些区别总结下来. 1.DepencyManagement应用场景 当我们的项目模块很多的时候,我们使用Maven管理项目非常方便,帮助我们管理构建.文档.报告.依赖.scms.发布.分发的方法.可以方便

dependencies与dependencyManagement的区别

当我们的maven项目中的依赖过多时,为了更好的做版本管理,我们要创建一个父项目来管理这些依赖(这个父项目的打包方式为pom) dependencies与dependencyManagement的区别: 在父项目中的dependencies中定义的所有依赖,在子项目中都会直接继承, 在父项目中的dependencyManagement中定义的所有依赖,子项目并不会继承,我们还要在子项目中引入我们需要的依赖,才能进行使用,但是,我们在子项目中不用设置版本.如下: 父项目 <dependencyMa

Maven中plugins和pluginManagement的区别

pluginManagement是表示插件声明,即你在项目中的pluginManagement下声明了插件,Maven不会加载该插件,pluginManagement声明可以被继承. pluginManagement一般是用来在父POM中定义,提供给子POM使用,子POM也可以覆盖这个定义,而且你在父POM中定义了版本之后,子模块中直接应用groupId和artifactId,而不用指定版本,同时也方便统一管理:而在父POM中的pluginManagement并不会介入到Maven的生命周期.

maven项目中连接sqlserver和mysql的区别

maven项目中,sql和mysql连接所需加载的包与jdbc.properties中的写法是不一样的 对于mysql: jdbc.properties的写法: jdbc.driverClassName=com.mysql.jdbc.Driver -- mysql驱动 jdbc.url=jdbc\:mysql\://localhost\:3306/workloads?useUnicode=true&characterEncoding=utf-8 -- 具体数据库信息,并设置编码 jdbc.use

7.maven配置文件中&lt;scope&gt;的6种配置属性解释(源自官方文档) -- 依赖的范围

7.maven配置文件中<scope>的6中配置属性解释 说明:我们知道在pom.xml中<scope>标签是设置依赖作用域的,那么具体的设置类型有哪几种,分别作用的什么时候呢? Dependency Scope Dependency scope is used to limit the transitivity of a dependency, and also to affect the classpath used for various build tasks. There