Maven:要获取最新版本的mvn clean,然后mvn包可以正常工作,但mvn clean包不能

问题描述

我只有一个项目设置,正在使用versions-maven-plugin获取最新版本。

当我在mvn clean之前运行mvn package时,会得到指定的更新消息

[INFO] Updated old_version:jar:0 to version new_version.

但是当我一起运行mvn clean package时,maven无法获得最新版本,并且出现了此错误消息

Could not find artifact old_version:jar:0

为什么会这样?如果maven遵循执行顺序,则它应该清除哪个先更新版本,然后再打包。 知道为什么mvn clean package命令不起作用。

解决方法

先运行mvn clean然后运行mvn packagemvn clean package并不完全相同。

原因:在运行任何生命周期之前,Maven都会先解析所有依赖项。

因此,如果您先运行mvn clean然后运行mvn package,则会得到:

  • 解决依赖关系
  • 更新您的依赖性
  • 解决依赖关系
  • 包装

但是如果您运行mvn clean package,则会得到:

  • 解决依赖关系
  • 更新您的依赖性
  • 程序包(从一开始就解决了依赖性)

总结:您不能在同一Maven运行中更新和使用依赖项。