首页 > 解决方案 > mvn clean、mvn install 和 mvn clean install 的区别

问题描述

我正在为我的项目使用 Maven。如果我的项目不使用某些本地资源,这不是问题。所以我按照本指南 https://stackoverflow.com/a/61576687/6720896 将我的本地 jar 复制到本地 maven 存储库并由 Maven 验证。

如您所见,在 中maven-install-plugin,我设置为在clean阶段安装本地存储库。这意味着mvn clean,maven 会将我的 jar 复制到 maven 本地存储库。

问题是,如果我分别运行mvn clean两个mvn install命令=>没有问题如果我运行mvn clean install=>构建失败,因为日志

Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project xxxx:xxxx:war:0.0.1-SNAPSHOT: Failure to find org.xxxx:xxxx-ws:jar:1.0.0 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced

似乎默认情况下,maven 总是执行以下顺序:验证 > 编译 > 清理 > 安装。我也尝试使用“mvn clean validate”,但错误仍然存​​在。

感谢您的阅读。

标签: javamaven

解决方案


这个问题不是很清楚,但我的解释如下:

OP 希望通过使用自动将依赖项添加到本地存储库install:install-file。然后 OP 想要使用该依赖项。这在单独运行时有效mvn cleanmvn install但在单独运行时无效mvn clean install

原因如下:

Maven 在流程开始时解决依赖关系。clean因此,在ofmvn clean install执行之前,依赖关系已经解决。

这尤其意味着您不能在同一个 Maven 运行中安装和解析依赖项。

但是,如果您首先运行mvn clean(安装依赖项)然后mvn install(使用依赖项),一切都很好。


推荐阅读