maven dependencyManagement 子模块不写版本号无法引入

现象

在父模块中使用 dependencyManagement 来控制子模块按需引入jar包 而不是照盘全收

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-gateway</artifactId>
		</dependency>
	</dependencies>
</dependencyManagement>

但是在子模块中继承父类并引入jar包的时候

<parent>
		<groupId>cn.o</groupId>
		<artifactId>atlas-cloud</artifactId>
		<version>1.0.0</version>
	</parent>

却发现
在这里插入图片描述
无法引入这个jar包3

解决

在子模块中按需引入 需要和父模块一样用 dependencyManagement

   <dependencyManagement>
        <dependencies>
            <!--gateway-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-gateway</artifactId>
            </dependency>

        </dependencies>
    </dependencyManagement>
### MavendependencyManagement 的用法和配置 #### 使用场景 当项目模块众多时,使用 Maven 管理项目变得尤为便捷。这仅有助于管理构建、文档、报告、依赖关系等方面的工作,还能确保所有子项目使用的依赖项及其版本保持一致,从而保障测试环境与生产环境中的一致性[^1]。 #### 配置方式 在顶层 POM 文件中定义 `dependencyManagement` 元素用于集中管理和声明依赖的版本号。这种方式允许开发者在一个地方设定好所需 jar 的具体版本信息,使得各子项目只需简单引用这些依赖而必重复指定其版本号。具体来说: - **父级 POM**: 定义全局性的依赖管理规则。 ```xml <project> ... <dependencyManagement> <dependencies> <!-- 示例:Junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- 更多依赖... --> </dependencies> </dependencyManagement> ... </project> ``` - **子级 POMs**: 继承自父级并利用已定义好的依赖设置 子项目的 pom.xml 可以像下面这样简洁地引入所需的依赖,无需再次指明版本号: ```xml <project> ... <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <!-- 版本由父POM中的dependencyManagement控制 --> </dependency> <!-- 添加其他本地特有的依赖 --> </dependencies> ... </project> ``` 这种机制有效减少了跨多个子模块间可能出现的版本匹配问题,并简化了整个项目的维护工作量[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值