我刚开始使用Maven,并被告知在特定目录中进行mvn安装。
mvn安装到底做什么?
我认为它会在当前文件夹中查找pom.xml,并开始按照该文件中指定的指示执行。对吗?
我刚开始使用Maven,并被告知在特定目录中进行mvn安装。
mvn安装到底做什么?
我认为它会在当前文件夹中查找pom.xml,并开始按照该文件中指定的指示执行。对吗?
当前回答
您可能已经知道,Maven是Apache提供的构建自动化工具,它的功能不仅仅是依赖项管理。我们可以让它成为Ant和Makefile的对等体,后者可以下载所需的所有依赖项。
在mvn安装中,它根据超级POM .xml(根POM)下所有子项目上的项目配置POM .xml构建依赖树,并在用户文件夹下名为.m2的目录中下载/编译所有所需的组件。这些依赖关系必须得到解决,才能正确地构建项目,mvn install是一个可以下载大部分依赖关系的实用程序。
此外,Maven中还有其他utils,如dependency:resolve,可以在任何特定情况下单独使用。mvn的构建生命周期如下:生命周期绑定
进程资源 编译 process-test-resources 任意 测验 包 安装 部署
这个mvn的测试阶段可以通过使用-DskipTests=true来忽略。
其他回答
install:install目标由«Apache Maven install Plugin»提供:
Apache Maven Install Plugin The Install Plugin is used during the install phase to add artifact(s) to the local repository. The Install Plugin uses the information in the POM (groupId, artifactId, version) to determine the proper location for the artifact within the local repository. The local repository is the local cache where all artifacts needed for the build are stored. By default, it is located within the user's home directory (~/.m2/repository) but the location can be configured in ~/.m2/settings.xml using the <localRepository> element. — Apache Maven Install Plugin - Introduction.
话虽如此,确切的目标目的是:
install:install用于自动安装项目的主要工件(JAR、WAR或EAR)、它的POM和任何由特定项目产生的附加工件(源代码、javadoc等)。 - Apache Maven安装插件-简介。
有关目标的更多详细信息,请参阅Apache Maven Install Plugin - Install: Install页面。
有关构建生命周期的其他详细信息以及目标在构建生命周期中的位置,请参考Maven -构建生命周期介绍页面。
在maven构建生命周期的任何阶段,都会执行之前的所有目标。
例如:mvn安装将调用mvn验证,mvn编译,mvn测试,mvn包等。
一般来说,我们应该使用mvn软件包而不是mvn安装,我在任何地方都看到这个错误
Mvn安装将生成的jar从目标复制到.m2存储库,这可能会在未来给开发人员带来一些问题
根据我7年多的经验,我建议开发人员使用mvn包而不是mvn安装
-DskipTests=true是- ddmen .test.skip=true的简写形式
在。m2文件夹中的settings .xml中进行更改。你可以使用链接到本地回购,这样罐子一旦下载不应该下载一遍又一遍。
<url>file://C:/Users/admin/.m2/repository</url>
</repository>
MVN安装的主要任务是
1)下载依赖项
2)构建项目
而job 1现在由intellij这样的id负责(他们在POM下载任何依赖项)
MVN安装现在主要用于作业2。