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