【发布时间】:2012-05-19 00:22:11
【问题描述】:
我刚开始使用 Maven,有人告诉我在特定目录中执行 mvn install。
mvn install 到底是做什么的?
我认为它会在当前文件夹中查找 pom.xml 并开始按照该文件中指定的说明进行操作。对吗?
【问题讨论】:
我刚开始使用 Maven,有人告诉我在特定目录中执行 mvn install。
mvn install 到底是做什么的?
我认为它会在当前文件夹中查找 pom.xml 并开始按照该文件中指定的说明进行操作。对吗?
【问题讨论】:
重要的是要指出install 和install:install 是不同的东西,install 是一个阶段,在这个阶段,maven 所做的不仅仅是将当前项目模块工件安装到本地存储库,它首先检查远程存储库。另一方面,install:install 是一个目标,它只是构建您当前的项目并将其所有工件安装到本地存储库(例如,安装到 .m2 目录中)。
【讨论】:
在 maven 构建生命周期的任何阶段,都会执行之前的所有目标。
例如:mvn install 会调用 mvn validate、mvn compile、mvn test、mvn package 等。
【讨论】:
mvn install主要工作是1)下载依赖项和2)构建项目
而 job 1 现在由 intellij 之类的 ID 负责(他们在 POM 下载任何依赖项)
mvn install 现在主要用于job 2。
【讨论】:
您可能知道,Maven 是 Apache 提供的一个构建自动化工具,它不仅仅做依赖管理。我们可以使它成为 Ant 和 Makefile 的对等体,它会下载所需的所有依赖项。
在mvn install 上,它根据超级pom.xml(根POM)下的所有子项目上的项目配置pom.xml 构建依赖关系树,并在名为的目录中下载/编译所有需要的组件.m2 在用户的文件夹下。必须解决这些依赖项才能构建项目而不会出现任何错误,mvn install 是一种可以下载大部分依赖项的实用程序。
此外,Maven 中还有其他实用程序,例如 dependency:resolve,可以在任何特定情况下单独使用。 mvn的构建生命周期如下:LifeCycle Bindings
process-resourcescompileprocess-test-resourcestest-compiletestpackageinstalldeploy这个 mvn 的测试阶段可以通过使用标志 -DskipTests=true 来忽略。
【讨论】:
简答
mvn 安装
- 将 pom 中指定的所有工件(依赖项)添加到 本地 存储库(来自远程源)。
【讨论】:
install:install 目标由 «Apache Maven Install Plugin» 提供:
Apache Maven 安装插件
安装插件用于在安装阶段将工件添加到本地存储库。安装插件使用 POM 中的信息(
groupId、artifactId、version)来确定工件在本地存储库中的正确位置。本地存储库是存储构建所需的所有工件的本地缓存。默认情况下,它位于用户的主目录 (
~/.m2/repository),但可以使用<localRepository>元素在~/.m2/settings.xml中配置位置。
话虽如此,确切的目标目的:
install:install用于自动安装项目的主要工件(JAR、WAR 或 EAR)、其 POM 以及特定项目生成的任何附加工件(源代码、javadoc 等)。
有关目标的更多详细信息,请参阅Apache Maven Install Plugin - install:install 页面。
有关构建生命周期的更多详细信息以及目标在构建生命周期中的位置,请参阅Maven – Introduction to the Build Lifecycle 页面。
【讨论】:
-DskipTests=true 是-Dmaven.test.skip=true 的简写形式
在 .m2 文件夹中的 Setting.xml 中进行更改。您可以使用本地 repo 的链接,这样一旦下载的 jars 就不会一次又一次地下载。
<url>file://C:/Users/admin/.m2/repository</url>
</repository>
【讨论】:
它将运行与默认生命周期的任何阶段相关联的所有已配置插件的所有目标,直到“安装”阶段:
https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference
【讨论】:
您是否查看过任何 Maven 文档,例如 maven install plugin docs?
Nutshell 版本:它将构建项目并将其安装在您的本地存储库中。
【讨论】: