一、场景

在打包项目时,发现有一个maven提示:

The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar

查资料发现, commons-io 的 groupId 已经更换为 commons-io,故对其进行更换。

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>${commons-io.version}</version>
</dependency>

更换后重新打包模块,提示:

dependencies.dependency.version is missing

 

二、原因

可能有原因有几个:

1)没有在父工程的 dependencyManagement 中定义 commons-io 的版本号

2)父工程中定义的版本号,没有被子工程继承

 

三、错误排查和解决

3.1 查看版本号

发现版本号的确有定义

 

3.2 子工程是否继承

网上有大佬提示:

 maven 对于父项目定义的dependencyManagement 中的 非 jar 类型的 type节点不会继承,也就是说子项目中必须再次声明非 jar 类型的type即可。

在子项目中对于缺少版本号的依赖写上版本号

根据提示,我用下面的方式解决了:

在子项目中先添加上了版本号,再重新打包。

打包成功后删除添加的这个版本号,再次打包。

感谢大佬~

GitHub 加速计划 / de / Dependencies
8.6 K
704
下载
A rewrite of the old legacy software "depends.exe" in C# for Windows devs to troubleshoot dll load dependencies issues.
最近提交(Master分支:2 个月前 )
1997a400 - 2 年前
2f423539 - 2 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐