Maven-dependencyManagement与import

dependencyManagement标签,我个人认为它命名不好,刚学maven的时候,乍眼一看应该是对maven依赖进行管理,其实,它只是用来统一管理依赖版本的,记住,是版本,其目的是防止不同子项目引用不同的版本而导致编写代码的时候出现意外错误

一.父类P项目的pom文件,假如是如下的写法

<groupId>com</groupId>
<artifactId>P</artifactId>//父类项目名称,叫做P
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
//对项目A的版本进行了统一管理,子类使用A的时候,可以不写<version>标签
<dependencyManagement>
		<dependencies>
			<dependency>
				  <groupId>com</groupId>
				  <artifactId>A</artifactId>
				  <version>0.0.1-SNAPSHOT</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

二.那么子类,如果想使用A,有两种方式
1.parent标签,子类POM文件应该这样写

//引用父类项目P
<parent>
	<groupId>com</groupId>
	<artifactId>P</artifactId>
	<version>0.0.1-SNAPSHOT</version>
</parent>
//子类使用项目A
<dependencies>
	<dependency>
		  <groupId>com.wentian</groupId>
		  <artifactId>A</artifactId>
		  //这里并没有使用<version>标签
	</dependency>
</dependencies>

2.import标签,子类POM文件应该这样写

//子类使用项目A,注意使用import标签时,不再使用<parent>标签
<dependencies>
	<dependency>
		  <groupId>com.wentian</groupId>
		  <artifactId>A</artifactId>
		  //这里并没有使用<version>标签
	</dependency>
</dependencies>
//表示将项目P的dependencyManagement拿到本POM中,不再继承parent
<dependencyManagement>
		<dependencies>
			<dependency>
				    <groupId>com</groupId>
					<artifactId>P</artifactId>
					<version>0.0.1-SNAPSHOT</version>
					<type>pom</type>//必须是type=pom
					<scope>import</scope>//必须是scope=import
			</dependency>
		</dependencies>
</dependencyManagement>

猜你喜欢

转载自blog.csdn.net/u011624903/article/details/87918800