В чем разница между mvn clean install
и mvn install
?
Как "mvn clean install" отличается от "mvn install"?
Ответ 1
clean
- это собственная фаза жизненного цикла сборки (которую можно рассматривать как действие или задачу) в Maven. mvn clean install
сообщает Maven, чтобы выполнить фазу clean
в каждом модуле перед тем, как запустить фазу install
для каждого модуля.
Что это такое, ясны любые скомпилированные файлы, которые вы имеете, убедившись, что вы действительно скомпилируете каждый модуль с нуля.
Ответ 2
Maven позволяет указать либо цели, либо фазы жизненного цикла в командной строке (или и то, и другое).
clean
и install
две разные фазы жизненного цикла, к которым различные плагины связаны (либо по умолчанию, либо явно в вашем pom.xml)
Фаза clean
для каждого соглашения предназначена для того, чтобы сделать сборку воспроизводимой, т.е. она очищает все, что было создано предыдущими сборками. В большинстве случаев это происходит, вызывая clean:clean
, который удаляет каталог, привязанный к ${project.build.directory}
(обычно называемый "target" )
Ответ 3
Вы можете вызвать более одной цели target с помощью maven. mvn clean install
сначала вызовет clean
, затем install
. Вы должны очистить вручную, потому что чистая не является стандартной целью target и не выполняется автоматически при каждой установке.
clean
удаляет целевую папку - она удаляет все файлы классов, java-документы, банки, отчеты и т.д. Если вы не clean
, тогда maven будет "делать то, что нужно сделать", например, не будет компилировать классы, если соответствующие исходные файлы не изменились (вкратце).
мы называем его target в ant и цели в maven
Ответ 4
Чтобы придерживаться условий Maven:
- "чистый" - это этап чистой жизненный цикл
- "установить" - это этап жизненный цикл по умолчанию
http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference
Ответ 5
Ditto для @Andreas_D, кроме того, если вы скажете обновление Spring от одной версии к другой в своем проекте, не делая ничего чистого, вы завершите оба в своем артефакте. В этом много времени развивается при разработке Flex с помощью Maven.