随笔 - 37,  文章 - 0,  评论 - 12,  阅读 - 10万

演示环境:

IntelliJ IDEA 2019.2.2

jdk1.8

maven3.5.3

内容:

自己搭建项目时,发现的一个如下问题。聚合工程,管理自己的子模块和子模块的依赖。

当我在一个子模块中clean,compiler或者install时都会报如下错误。去网上找了下解决方案,按照所说,把父工程install一下就好了。

然后我兴高采烈的去一试究竟,发现然并卵。housekeep父工程clean一下依然包如下错误。install就更不用说了。

What!  Why?   

网上找了半天依然没有解决。最后自己摸索终于找出了问题所在。

 

在我们使用idea集成maven之后给的clean,compiler或者install等操作,控制台打印的报错日志太少了,就这么干巴巴的一句话(我的是这样)

于是我就打开了idea下面的terminal,这个terminal的作用想必大家都不陌生,就是相当于在该项目下打开CMD命令窗口(idea中terminal默认是打开我们的CMD命令窗口)。

 

 

打开是这个样子

 

 

然后我就使用maven的命令来clean一下这个housekeep父工程,结果如下

 

 

这个报错日志就比较详细,仔细一看,发现上面有这样一段话

 

 

大概意思就是说我的housekeep-product-service子模块找不到父级工程housekeep的pom文件

于是我就去找到我这个子项目

 

 

我建的项目时三层关系,红圈是最外一层,也就是housekeep父工程。蓝圈是二级父级项目housekeep-product继承housekeep。而绿圈侧是我的服务项目housekeep-product-service。

因为项目依赖继承关系有点多,一时走神,把housekeep-product-service中的父级写成了housekeep,应该是写成housekeep-product。按照正常来说这也没什问题,无非就是继承有点混乱。但因为housekeep-product-service项目的所在的项目位置,和housekeep父级工程的pom文件所在的目录,相距了两层文件目录,而我也没有给这个父级依赖添加<relativePath>标签来指明pom文件的位置,该子工程项目就会默认从当前项目所在地的上一级目录去找,很显然是找不到的。这就导致了刚开始的问题。解决办法可以加上<relativePath>标签来指明pom文件的位置或者这把父级改成housekeep-product。当然后者是最好的。

 

第一种改法如下

 

 之后在housekeep父级工程clean一下,就会成功。

 

第二种改法

 在housekeep父级工程clean一下,依然肯定会成功。之后就是我把父级工程install一下,进行之后操作。clean成功的前提下这个install一般都会成功,不成功,按照上面的步骤进行对install的追查。

 

综上所述,最终是想告诉小伙伴们,在idea中出现这种pom文件找不到的情况,我们可以使用maven命令去操作,报出的异常信息比较详细,我们能追根溯源,找到具体是哪那个子模块有问题。

 

本人学疏才浅,以上是个人的一点见解,希望能帮助志同道合的小伙伴。

 

 

~~~~~~~~~~可以忽略~~~~~~~~~~~~~

发现一个不错的chatGPT网站,方便易用。

点击直达

posted on   之之小侠  阅读(28005)  评论(2编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示