“mvn clean package”和“mvn clean install”有什么不同?
和 之间到底有什么区别?当我运行这两个命令时,它们似乎都执行了相同的操作。mvn clean package
mvn clean install
和 之间到底有什么区别?当我运行这两个命令时,它们似乎都执行了相同的操作。mvn clean package
mvn clean install
好吧,两者都会清洁。这意味着他们将删除目标文件夹。真正的问题是软件包和安装有什么区别?
package
将编译您的代码并将其打包。例如,如果你的pom说这个项目是一个jar,它会在你打包它并把它放在目标目录的某个地方时为你创建一个jar(默认情况下)。
install
将编译和打包,但它也会将包放在本地存储库中。这将使其他项目可以引用它并从本地存储库中获取它。
什么 clean 做什么(在两个命令中都常见) - 删除上一个版本生成的所有文件
对于命令包和安装之间的区别,您首先需要了解maven项目的生命周期
这些是 maven 中的默认生命周期阶段
Maven 的工作原理是,如果您为任何生命周期阶段运行命令,它会在执行命令本身之前按顺序执行每个默认生命周期阶段。
执行顺序
验证>>编译>>测试(可选)>>包>>验证>>安装>>部署
因此,当您运行命令mvn包时,它会运行所有生命周期阶段的命令,直到包
验证>>编译>>测试(可选)>>包
至于mvn安装,它运行所有生命周期阶段的命令,直到安装,其中还包括软件包
验证>>编译>>测试(可选)>>包>>验证>>安装
因此,实际上,它的意思是,安装命令可以完成打包命令所做的一切,甚至更多(将包安装到本地存储库中,以便在本地其他项目中用作依赖项)
来源:Maven 生命周期参考