java ERROR1- Goal requires a project to execute but there is no POM in this directory ...

1、问题背景:

   在一个聚合工程中给各pom.xml文件修改项目版本号(version),为了快捷方便,且不遗漏多个子项目,采用方法如下

(1)在项目的主pom.xml文件中version版本改成需要的

(2)在idea终端执行maven命令(如下)

  mvn -N versions:update-child-modules

(3)执行成功之后(BUID SUCCESS),查看任一子模块 pom文件看看是否改了,即可确认

2、问题出现

执行meaven命令的时候,就会报错ERROR...

Failed to execute goal requires a project to execute but there is no POM in this directory(一个实际的当前所在的目录路径,如...../xx/target)

3、含义和原因:

(1)含义:在当前target目录中找不到pom文件

(2)原因:idea终端所处的目录是target,而这个目录下没有pom文件

4、解决:

知道原因之后,我们就可以知道,我们要想执行上面的命令,就要到正确的目录下才可以,也就是需要到父工程的目录下,因为只有在父工程目录里才包含所有子项目的内容,其中包含子项目各自的pom文件,而不是在父工程或其他工程的target目录下,具体解决步骤如下面示例。

假设父工程叫a,现在所处的目录是projects/a/target,这个时候就要回到a目录下,idea终端输入如下命令解决:

  • pwd           //查看当前所在目录,一般报错的地方会提示当前在哪个目录下
  • cd projects/a      //回到a目录
  • mvn -N versions:update-child-modules     //这时再执行maven命令

5、总结

这类maven命令错误的主要原因就是目前所处的目录不对,Goal找不到,只需切到对应正确的目录下再执行就好啦~ 

补充: 针对聚合项目版本更新同步问题补充

若pom文件版本改完之后,子项目version处报错表示no find,这主要是项目更改的东西暂时没加载好

解决:

1、等待,项目自主加载完成就好了

2、手动加载一下,步骤如下:

  • 先确认和主pom文件version是否已改为一致,一致了再进行下面操作
  • 点开maven,先clean一下,再compile一下,最后package一下
  •  build success就好了

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值