mvn clean package
和之间到底有什么区别mvn clean install
?当我运行这两个命令时,它们似乎都在做相同的事情。
mvn clean package
和之间到底有什么区别mvn clean install
?当我运行这两个命令时,它们似乎都在做相同的事情。
Answers:
好吧,两个都会干净。这意味着他们将删除目标文件夹。真正的问题是打包和安装之间有什么区别?
package
将编译您的代码并将其打包。例如,如果您的pom表示该项目是jar,则在打包并将其放置在目标目录中的某个位置时(默认情况下),它将为您创建jar。
install
将进行编译和打包,但也会将该包放入您的本地存储库中。这样,其他项目就可以引用它并从本地存储库中获取它。
mvn clean install
不比快mvn package
。
clean的功能(在两个命令中都很常见)-删除先前版本生成的所有文件
谈到命令包和安装之间的差异,您首先需要了解maven项目的生命周期
这些是Maven中的默认生命周期阶段
Maven的工作方式是,如果您在任何生命周期阶段都运行命令,它将在执行命令本身之前按顺序执行每个默认生命周期阶段。
执行顺序
验证>>编译>>测试(可选)>>包>>验证>>安装>>部署
因此,当您运行命令mvn package时,它将运行所有生命周期阶段的命令,直到package
验证>>编译>>测试(可选)>>程序包
至于mvn install,它将在安装之前一直运行所有生命周期阶段的命令,其中包括软件包
验证>>编译>>测试(可选)>>包>>验证>>安装
因此,实际上,这意味着安装命令可以完成package命令所做的所有工作,甚至更多(将软件包安装到本地存储库中,以作为本地其他项目中的依赖项)
资料来源:Maven生命周期参考
软件包将根据POM文件生成Jar / war。 install会将生成的jar文件安装到本地存储库以获取其他依赖项(如果有)。
安装阶段在软件包阶段之后
打包和安装是maven构建生命周期的各个阶段。打包阶段将在此之前执行所有阶段,并且将项目打包为罐子。同样,安装阶段将执行所有之前的阶段,最后为其他从属项目在本地安装该项目。
要了解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
文件夹进行确认。
package
和install
。