maven clean install -U 是什么意思?

6
我有一个带有m2e插件、Maven和Weblogic应用服务器的Eclipse IDE,可以在我的本地计算机上运行。
我从Bitbucket导入了别人的多个Maven项目到我的计算机。我被告知其中一个是主要的,而其余的是依赖项,我以前从未见过这样的情况。无论如何,根据指示,我必须运行Maven命令,例如“clean install -U”。
在IDE中,我通过设置目标为“clean install -U”来触及每个mvn项目的运行配置。通过阅读Maven指南,我有点理解每个术语的含义,但当你将它们与传递参数结合起来时,它实际上是做什么的呢?我没有预料到一个jar(Web应用程序)也会被部署到应用服务器上,但它确实发生了。
1个回答

10

-U参数强制Maven检查基于你的POM文件可能需要更新的任何外部依赖项(第三方依赖项)。

clean和install都是基本的Maven生命周期阶段(https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html)。

通常,install只会将构建的工件放在本地仓库中,即正在构建的计算机上的目录(大多数情况下为.m2目录)。它不会将其部署到服务器上 - 通常使用deploy阶段来完成此操作。

但是,开发人员可以覆盖并添加到Maven在各个阶段执行的操作,因此就像在ant时代一样,在复杂的项目中,事情很容易陷入无法理解的混乱状态。

有时,在集成测试阶段,开发人员会告诉Maven临时启动一个容器来运行Web应用程序,以便可以针对其运行测试,然后在集成测试阶段完成时关闭该容器。


Jim,谢谢您的回复。我有一个问题要问您先生。我读到了“clean”是生命周期,而生命周期由各个阶段组成。安装代表一个阶段,所以当它们结合在一起时意味着什么?我可以只运行“clean”,它将通过包括安装在内的每个阶段。为什么有人说我必须运行两个命令? - DaeYoung
1
嗨Dae-,“clean”实际上是一个生命周期,它清理了以前构建的东西,因此您从干净的状态开始。 它不会构建任何东西。 “install”是他们所谓的“默认”生命周期中的一个阶段。 它是默认生命周期阶段末尾的一个阶段,因此所有先前的阶段,如编译,测试等都会被执行,因为您要求“install”。 因此,“clean install”表示-首先运行清洁生命周期以清除所有内容,“install”表示现在运行从验证到安装的所有默认生命周期阶段。 - Jim Weaver
这里列出了所有阶段,按照它们的三个生命周期(clean、default、site)进行分组:https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference - Jim Weaver
“-U” 只在与 SNAPSHOT 相关的情况下才有意义,而不适用于发布版本。 - khmarbaise

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接