【问题标题】:Maven: To get latest release mvn clean then mvn package working fine but mvn clean package notMaven:要获得最新版本 mvn clean 然后 mvn package 工作正常,但 mvn clean package 不能
【发布时间】:2020-09-24 07:38:43
【问题描述】:

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

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

[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 命令不起作用。

【问题讨论】:

    标签: java maven maven-3 maven-plugin


    【解决方案1】:

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

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

    所以如果你运行mvn clean,然后运行mvn package,你会得到:

    • 解决依赖关系
    • 更新你的依赖
    • 解决依赖关系

    但如果你运行mvn clean package,你会得到:

    • 解决依赖关系
    • 更新您的依赖项
    • 包(从一开始就包含已解析的依赖项)

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

    【讨论】:

    • 感谢您的简短解释。我不能使用一个命令而不是两个单独的命令(即 mvn clean 和 mvn package)来实现相同的目的吗?
    • 不,这是不可能的。
    • 那么我想澄清另一个疑问,我的是单模块项目。对于多模块项目,它也不应该工作。但是对于具有单个命令的多模块(即 mvn clean package),它绝对可以正常工作。
    • 依赖的版本是否在父POM中定义,而依赖在子项目中?
    • 不,父pom中没有提到。
    猜你喜欢
    • 2013-05-12
    • 1970-01-01
    • 2015-02-26
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多