项目场景:
在微服务项目中, 我们需要根据主父项目来创建子父项目(子模块项目), 然后根据子父项目来创建子模块代码(domain,api,maper,service,web层等), 如下图所示问题描述:
在我们创建子模块的时候, 有可能会因为失误. 导致依赖的是父项目例如: 在创建 his-statistics子模块项目的 statistics-api 子模块时,
由于大意没有选择对依赖的父项目(原本需要依赖子模块项目却依赖成了父项目, 图1),
导致statistics-api 子模块和his-statistics 子模块项目出现了同级的情况(如下图2),
这里就需要我们花点心思去调整项目的依赖结构
图1
图2
解决方案:
内容较长, 可以直接看最下方总结的步骤, 如果有问题可以结合解决方案中的具体介绍来操作
-
通过子模块的pom文件进入依赖错误的父项目
-
剪切在父项目错误引用的子模块并更新pom文件
在错误依赖的父项目中找到这个子模块, ctrl+x 剪切错误依赖的子模块<module>statistics-api</module>
(后面还会使用)
更新/重载下pom文件, 操作方式如下图(作用是使修改过后的pom文件生效):
注意: 在更新pom文件后会提示如下内容, 让你删除无效的引用, 点击yes
可以看到 点击yes 后, 这个 statistics-api 模块项目颜色会变浅(后面会解决)
-
将错误的 statistics-api 模块的放入到正确依赖的子模块项目his-statistics 下
操作方式: 点击statistics-api 子模块后, 利用鼠标将其拖动到 his-statistics 模块项目下, 如下图
-
在正确的父项目/子模块项目的pom中将第1步剪切的内容放入并更新pom文件
在子模块项目的pom文件中把第1步剪切的<module>statistics-api</module>
放到正确依赖的父项目/子模块项目下, 然后更新pom文件
重新加载后, 可以看到子模块颜色已经变成深色(表示子模块statistics-api 和子模块项目 his-statistics已经建立了关系 ), 如果没有变色也无需担心, 下面会继续介绍 -
修改该子模块的pom,
将引用错误的父项目/子模块项目改为对的并更新pom文件即可
补充: 这里是正确的引用(子模块statistics-api 父项目引用指向子模块项目 his-statistics),并更新pom文件
注意: 如果直到这里statistics-api 子模块颜色还未变深就需要特殊的方法了
我们可以点击idea 右上角 File -> Project Structure->Modules->找到子模块正确依赖的父项目 -> add -> 导入当前颜色没有改变的子模块即可
总结 :
总体步骤可以总结为:
- 剪切在父项目错误引用的子模块并更新pom文件
- 将该子模块移动到正确的父项目/子模块项目中(位置移动)
- 在正确的父项目/子模块项目的pom中将第1步剪切的放入并更新pom文件
- 修改该子模块的pom, 将引用错误的父项目/子模块项目改为对的并更新pom文件即可