Чем "mvn clean install" отличается от "mvn install"? - PullRequest
175 голосов
/ 16 мая 2011

В чем разница между mvn clean install и mvn install?

Ответы [ 5 ]

181 голосов
/ 16 мая 2011

clean - это собственная фаза жизненного цикла сборки (которую можно рассматривать как действие или задачу) в Maven.mvn clean install говорит Maven выполнить фазу clean в каждом модуле перед запуском фазы install для каждого модуля.

Что это делает, очищает все ваши скомпилированные файлы, удостоверяясь, что вы действительнокомпиляция каждого модуля с нуля.

40 голосов
/ 16 мая 2011

Maven позволяет вам указать цели или фазы жизненного цикла в командной строке (или обе).

clean и install - это две разные фазы жизненного цикла , к которым различные исполнения плагина связаны (либо по умолчанию, либо явно в вашем pom.xml )

Фаза clean, согласно соглашению, предназначена для того, чтобы сделать сборку воспроизводимой,то есть он очищает все, что было создано предыдущими сборками.В большинстве случаев это происходит путем вызова clean:clean, который удаляет каталог, связанный с ${project.build.directory} (обычно называемый "target")

34 голосов
/ 16 мая 2011

Вы можете позвонить более чем одной цели цели с Maven. mvn clean install сначала звонит clean, затем install. Вы должны выполнить очистку вручную, потому что очистка не является стандартной целью целью и не выполняется автоматически при каждой установке.

clean удаляет целевую папку - он удаляет все файлы классов, документы Java, банки, отчеты и так далее. Если вы не clean, тогда maven будет «делать то, что нужно», как если бы он не компилировал классы, когда соответствующие исходные файлы не изменились (кратко).

мы называем это цель у муравья и цель у мавена

23 голосов
/ 16 мая 2011

Чтобы придерживаться терминов Maven:

  • «очистить» - это фаза чистого жизненного цикла
  • «установить» - это фаза жизненного цикла по умолчанию

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

3 голосов
/ 16 мая 2011

То же самое для @Andreas_D, кроме того, если вы скажете обновить Spring с 1 версии до другой в вашем проекте, не выполняя чистку, вы получите оба в своем артефакте. Многое сталкивалось с этим при разработке Flex с Maven.

...