“mvn清洁包装”怎么样?“mvn清洁安装”;不同吗?

mvn clean packagemvn clean install到底有什么区别?当我运行这两个命令时,它们似乎都在做同样的事情。

366260 次浏览

两者都能清洁。这意味着它们将删除目标文件夹。真正的问题是package和install之间的区别是什么?

package将编译你的代码并打包它。例如,如果您的pom说该项目是一个jar,那么当您打包它并将其放在目标目录中的某个位置时(默认情况下),它将为您创建一个jar。

install将编译和打包,但它也将把包放在本地存储库中。这将使其他项目可以引用它,并从本地存储库中获取它。

文档 .

包,安装是maven构建生命周期中的不同阶段。打包阶段将在此之前执行所有阶段。它将停止把项目包装成一个罐子。类似地,安装阶段将执行之前所有阶段&最后,为其他依赖的项目在本地安装该项目。

为了理解maven构建生命周期,请通过以下链接https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html

将根据POM文件生成Jar/war。 Install 会将生成的jar文件安装到本地存储库,用于其他依赖项。

安装阶段在阶段之后

package将打包的jarwar添加到你的target文件夹,我们可以检查它,我们清空目标文件夹(使用mvn clean),然后运行mvn package
install将完成package所做的所有事情,此外,它还将在本地存储库中添加打包的jarwar。我们可以通过检查你的.m2文件夹来确认

clean所做的(在这两个命令中都常见)-删除由前一个构建生成的所有文件


关于命令安装之间的区别,你首先需要理解 maven项目的生命周期


这些是maven中的默认生命周期阶段

  • 验证 -验证项目是正确的,所有必要的信息是可用的
  • 编译项目的源代码
  • 测验 -使用合适的单元测试框架测试编译的源代码。这些测试不应该要求对代码进行打包或部署
  • -将编译后的代码打包成可分发的格式,比如JAR。
  • 验证 -对集成测试的结果进行任何检查,以确保满足质量标准
  • 安装 -将包安装到本地存储库中,以便在本地其他项目中作为依赖项使用
  • 部署 -在构建环境中完成,将最终包复制到远程存储库,以便与其他开发人员和项目共享。

Maven的工作原理是,如果您为任何生命周期阶段运行命令,它将在执行命令本身之前按顺序执行每个默认的生命周期阶段。

执行顺序

验证在祝辞编译在祝辞测试(可选)>>包在祝辞验证在祝辞安装在祝辞部署

因此,当你运行命令< >强mvn包< / >强时,它会运行所有生命周期阶段的命令,直到包

验证在祝辞编译在祝辞测试(可选)>>包

而对于< >强mvn install < / >强,它在安装之前运行所有生命周期阶段的命令,其中也包括package

验证在祝辞编译在祝辞测试(可选)>>包在祝辞验证在祝辞安装


因此,它实际上的意思是,安装命令完成了命令所做的一切,甚至更多(将包安装到本地存储库中,以便在本地其他项目中作为依赖项使用)

来源:Maven生命周期参考

MVN package命令将编译源代码,并将其打包为jar或war作为pom文件,并将其放入目标文件夹(默认情况下)。

MVN install命令将编译和打包,但它也将把包放在本地存储库中。以便其他项目可以引用它并从本地存储库中获取它。

MVN install命令主要用于编译存储库中其他项目所依赖的项目(库)。