"mvn clean install"与"mvn install"有什么不同?

Leo*_*nid 190 java build maven-3 maven

mvn clean install和之间有什么区别mvn install

Pow*_*ord 195

clean是Maven中自己的构建生命周期阶段(可以被认为是一个动作或任务).在为每个模块运行阶段之前,mvn clean install告诉Maven clean在每个模块中执行install阶段.

这样做可以清除您拥有的任何编译文件,确保您真正从头开始编译每个模块.

  • @shanyangqu可悲的是,没有.`clean`位于[单独的生命周期]中(http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference),因此默认情况下不会调用它. (13认同)
  • 我一直认为安装包括干净作为其阶段之一...直到我看到这一点 (12认同)

Sea*_*oyd 44

Maven允许您在命令行(或两者)上指定目标或生命周期阶段.

clean并且install两个不同的生命周期阶段,绑定不同的插件执行(默认情况下或在pom.xml中显式)

根据clean惯例,该阶段旨在使构建可重现,即它清除由先前构建创建的任何内容.在大多数情况下,它通过调用clean:clean来删除绑定的目录${project.build.directory}(通常称为"目标")

  • "安装"不是生命周期.这是默认生命周期中的一个阶段.虽然存在"干净"的生命周期,但AFAIK此参数指定"干净"生命周期中的"干净"阶段,而不是"干净"生命周期本身. (6认同)

And*_*s_D 37

您可以使用maven 调用多个目标目标.然后先mvn clean install打电话.您必须手动清理,因为clean不是标准目标目标,并且不会在每次安装时自动执行.cleaninstall

clean删除目标文件夹 - 它删除所有类文件,java文档,jar,报告等.如果你不这样做clean,那么maven只会"做必须做的事情",就像在相应的源文件没有改变时一样不会编译类(简而言之).

我们称之为目标蚂蚁和目标,在行家

  • 我认为在这种情况下,清理和安装是生命周期阶段,而不是目标。 (3认同)

Puc*_*uce 25

坚持使用Maven条款:

  • "干净"是清洁生命周期的一个阶段
  • "install"是默认生命周期的一个阶段

http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference


mez*_*zmo 5

@Andreas_D 也是如此,此外,如果您说在您的项目中将 Spring 从 1 个版本更新到另一个版本而不进行清理,您将在您的工件中同时获得这两个版本。在使用 Maven 进行 Flex 开发时经常遇到这个问题。