我刚开始使用Maven,并被告知在特定目录中进行mvn安装。

mvn安装到底做什么?

我认为它会在当前文件夹中查找pom.xml,并开始按照该文件中指定的指示执行。对吗?


当前回答

你看过Maven文档吗,比如Maven安装插件文档?

果壳版本:它将构建项目并将其安装在本地存储库中。

其他回答

重要的是要指出安装和安装:安装是不同的东西,安装是一个阶段,在这个阶段,maven做的不仅仅是将当前项目模块工件安装到本地存储库,它首先检查远程存储库。另一方面,install:install是一个目标,它只是构建你当前的项目,并将所有的构件安装到本地存储库(例如到.m2目录)。

你看过Maven文档吗,比如Maven安装插件文档?

果壳版本:它将构建项目并将其安装在本地存储库中。

它将运行与默认生命周期的任何阶段相关的所有配置插件的所有目标,直到“安装”阶段:

https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

一般来说,我们应该使用mvn软件包而不是mvn安装,我在任何地方都看到这个错误

Mvn安装将生成的jar从目标复制到.m2存储库,这可能会在未来给开发人员带来一些问题

根据我7年多的经验,我建议开发人员使用mvn包而不是mvn安装

您可能已经知道,Maven是Apache提供的构建自动化工具,它的功能不仅仅是依赖项管理。我们可以让它成为Ant和Makefile的对等体,后者可以下载所需的所有依赖项。

在mvn安装中,它根据超级POM .xml(根POM)下所有子项目上的项目配置POM .xml构建依赖树,并在用户文件夹下名为.m2的目录中下载/编译所有所需的组件。这些依赖关系必须得到解决,才能正确地构建项目,mvn install是一个可以下载大部分依赖关系的实用程序。

此外,Maven中还有其他utils,如dependency:resolve,可以在任何特定情况下单独使用。mvn的构建生命周期如下:生命周期绑定

进程资源 编译 process-test-resources 任意 测验 包 安装 部署

这个mvn的测试阶段可以通过使用-DskipTests=true来忽略。