英文:
Maven: To get latest release mvn clean then mvn package working fine but mvn clean package not
问题
我有一个单项目设置,在其中我正在使用 versions-maven-plugin
来获取最新的发布版本。
当我在运行 mvn package
之前运行 mvn clean
,会收到更新的消息,其中指定了:
[INFO] 将 old_version:jar:0 更新为新版本 new_version。
但是当我同时运行 mvn clean package
时,Maven 无法获取最新版本,我收到了这个错误消息:
找不到 artifact old_version:jar:0
为什么会发生这种情况?如果 Maven 遵循执行顺序,那么它应该先执行清理以更新版本,然后再打包。有没有关于为什么 mvn clean package
命令不起作用的任何想法?
英文:
I have single project setup where I am using versions-maven-plugin
to get latest release.
When I ran mvn clean
before mvn package
, getting updated message which specify
[INFO] Updated old_version:jar:0 to version new_version.
But when I ran mvn clean package
together then maven not able to get latest version and I got this error message
Could not find artifact old_version:jar:0
Why is this happening? If maven follows the order of execution then it should clean which updates the version first then package.
Any idea why mvn clean package
command is not working.
答案1
得分: 1
运行 mvn clean
,然后再运行 mvn package
,与直接运行 mvn clean package
不完全相同。
原因:Maven 在运行任何生命周期之前会先解析所有的依赖关系。
因此,如果你先运行 mvn clean
,然后再运行 mvn package
,你会得到:
- 解析依赖关系
- 更新你的依赖
- 解析依赖关系
- 打包
但是如果你直接运行 mvn clean package
,你会得到:
- 解析依赖关系
- 更新你的依赖
- 打包(使用了从一开始就解析的依赖关系)
总结:你不能在同一次 Maven 运行中更新并使用依赖关系。
英文:
Running mvn clean
and then mvn package
is not exactly the same as mvn clean package
.
The reason: Maven resolves all dependencies before it runs any of the lifecycles.
So if you run mvn clean
and then mvn package
you get:
- resolves dependencies
- updates your dependecy
- resolves dependencies
- package
but if you run mvn clean package
, you get:
- resolves dependencies
- updates your dependency
- package (with the resolved dependencies from the beginning)
Summarized: You cannot update and use dependencies in the same Maven run.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论