mvn clean package
和mvn clean install
究竟有什么区别?当我运行这两个命令时,它们似乎都做同样的事情。
好吧,两者都会干净。这意味着他们将删除目标文件夹。真正的问题是包和安装之间的区别是什么?
package
将编译您的代码并将其打包。例如,如果您的pom说该项目是一个jar,它会在您打包并将其放在目标目录中的某个位置时创建一个jar(默认情况下)。
install
将编译和打包,但它也会将包放在您的本地存储库中。这将使其他项目可以引用它并从本地存储库中获取它。
什么干净(在两个命令中都很常见) - 删除前一个版本生成的所有文件
根据命令包和安装之间的区别,首先需要了解maven项目的生命周期
这些是maven中的默认生命周期阶段
Maven如何工作,如果您为任何生命周期阶段运行命令,它会在执行命令本身之前按顺序执行每个默认生命周期阶段。
执行顺序
验证>>编译>>测试(可选)>>包>>验证>>安装>>部署
因此,当您运行命令mvn package时,它会运行所有生命周期阶段的命令直到package
validate >> compile >> test(optional)>> package
至于mvn install,它运行所有生命周期阶段的命令直到安装,包括包
验证>>编译>>测试(可选)>>包>>验证>>安装
因此,有效的意思是,install命令执行package命令执行的所有操作以及更多(将软件包安装到本地存储库,以便在本地用作其他项目中的依赖项)
包将根据POM文件生成Jar / war。 install会将生成的jar文件安装到本地存储库以获取其他依赖项(如果有)。
封装阶段后安装阶段
打包和安装是maven构建生命周期中的各个阶段。包阶段将执行之前的所有阶段,它将停止将项目打包为jar。类似地,安装阶段将执行所有先前阶段,最后在本地为其他依赖项目安装项目。
要了解maven构建生命周期,请通过以下链接https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html
package
将包装的jar
或war
添加到你的target
文件夹,我们可以检查它,我们清空目标文件夹(使用mvn clean
),然后运行mvn package
。
install
将完成package
所做的所有事情,此外它还将在本地存储库中添加打包的jar
或war
。我们可以通过检查你的.m2
文件夹来确认。