【问题标题】:difference between mvn clean and install commandsmvn clean 和 install 命令的区别
【发布时间】:2014-03-11 20:28:21
【问题描述】:
我使用 maven 进行构建,通常我们使用 maven 命令mvn clean -Dmaven.test.skip=true package 仅用于构建 Web 应用程序。我知道我们也可以使用mvn install 命令来构建Web 应用程序。但是谁能告诉我这两个命令之间的确切区别?
我发现了一些关于清理和安装命令的注释。但我只想知道使用mvn clean 命令而不是使用install 命令有什么好处。
【问题讨论】:
标签:
java
build
maven-2
build-process
【解决方案1】:
mvn clean -Dmaven.test.skip=true package 和mvn install 之间的主要区别在于,第一个命令行会在不运行测试的情况下清理target 目录和包。第二个是编译、测试、打包并将 JAR 或 WAR 文件安装到本地存储库 ~/.m2/repository。
【解决方案2】:
Maven 有 Maven Phases 的概念。请通过 this doc 的 Maven 阶段。因此,当您运行一个阶段(例如 maven 阶段 x)时,执行该阶段之前的所有阶段(即阶段 1 到阶段 x)。
您需要mvn clean 来清理先前构建创建的工件。 mvn package 会将您的代码打包成您在 POM 中指定的格式。 mvn install 也会将 Maven 制作的包安装到本地仓库中。
还要注意clean 和site 不是默认生命周期阶段的一部分。您必须在您的 package 或 install 命令之前触发它。不用说订购在这里很重要。
【解决方案3】:
正如here 解释的那样。
clean 在 Maven 中是它自己的动作。 mvn clean install 告诉 Maven 在为每个模块运行安装操作之前在每个模块中执行清理操作。
这样做会清除您拥有的所有已编译文件,确保您确实是从头开始编译每个模块。