mvn install和mvn clean install

为什么要用mvn clean install,maven执行install不是会把之前的流程都走一遍吗

阅读 3.6k
1 个回答

clean 和 install 是两个独立的生命周期,只不过默认情况下 install 之前的那些步骤或插件和 clean 是一样的(就是你所谓的 install 会把之前流程走一遍)。但这个行为你是可以在 pom.xml 去修改的,这就导致了 clean 和 install 可能会有不同的执行流程。

再一点是 install 里前面执行的那些步骤,会有一些默认的行为。以 package 为例,其实内部有一些逻辑判断是否需要重新打包,对于某些特定条件它就会跳过该步骤、以加快速度,比如它会对比文件修改时间。但如果你的有多台机器存在时间不一致的问题、或是你有某个私包仓库允许重复上传同版本的包,就会导致这里判断失误、明明代码有变化却不能重新打包。而 clean 的话就会确保一定会重新打包(因为上一次的结果被删掉了嘛)。

事实上如果你能完整了解二者的执行流程并能确认不需要 clean 的话确实只执行 install 就可以了,并不说非得先 clean 再 install,这只是一种缩小构建错误范围的一种方式。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题