java - 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”,但错误仍然存在。
感谢您的阅读。
解决方案
这个问题不是很清楚,但我的解释如下:
OP 希望通过使用自动将依赖项添加到本地存储库install:install-file
。然后 OP 想要使用该依赖项。这在单独运行时有效mvn clean
,mvn install
但在单独运行时无效mvn clean install
。
原因如下:
Maven 在流程开始时解决依赖关系。clean
因此,在ofmvn clean install
执行之前,依赖关系已经解决。
这尤其意味着您不能在同一个 Maven 运行中安装和解析依赖项。
但是,如果您首先运行mvn clean
(安装依赖项)然后mvn install
(使用依赖项),一切都很好。
推荐阅读
- c++ - 使用 C++ 创建特殊的二叉搜索树
- angular - 在 ng serve 构建 Angular 库
- reactjs - react 会重新渲染只有状态的某些部分发生变化的孩子,还是所有使用状态的孩子都被重新渲染?
- gradle - 使用 Gradle 工具 api 以编程方式获取 Gradle 插件
- python - python - 为什么循环不会在python中的if子句条件上跳转索引?
- html - 屏幕中的px单位宽度分辨率问题
- c# - Tizen.NET NfcCardEmulation 抛出 UnsupportedException(具有附加权限)
- css - 在视口底部固定元素定位 - 不诉诸位置:固定(纯 CSS 解决方案)
- sql - 如何在没有错误缩进的情况下正确格式化 SQL 文件?
- javascript - 单击扩展程序的图标时,有没有办法添加 HTML