亲宝软件园·资讯

展开

Maven 继承父工程时的relativePath标签详细解析

西京刀客 人气:0

Maven 继承父工程时的relativePath标签解析

<parent>
		<groupId>com.ctrip.framework.apollo</groupId>
		<artifactId>apollo</artifactId>
		<version>1.6.1</version>
		<relativePath>../pom.xml</relativePath>
	</parent>

relativePath:
1)指定查找该父项目pom.xml的(相对)路径。默认顺序:relativePath > 本地仓库 > 远程仓库
2)没有relativePath标签等同…/pom.xml, 即默认从当前pom文件的上一级目录找
3)表示不从relativePath找, 直接从本地仓库找,找不到再从远程仓库找

关于2)经过测试,似乎 没有relativePath标签时,它没有从当前pom文件的上一级目录找,子模块继承不到父模块中dependencyManagement中包的version信息。

因此,强烈推荐,子模块配置relativePath元素,指定 …/pom.xml。

maven 3.6.0环境下测试

发现子模块 parent 如果你不配
…/pom.xml
发现,你dependency中,如果没有指定版本,它好像不能从父dependencyManagement中定义的版本中,获取版本。

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.ctrip.framework.apollo</groupId>
				<artifactId>apollo-common</artifactId>
				<version>${project.version}</version>
			</dependency>

因此,总结,子模块想要用父模块pom中的版本,请注意配置relativePath属性!

加载全部内容

相关教程
猜你喜欢
用户评论