Я предполагаю, что вы используете макет каталога, аналогичный тому, который IDE Netbeans создает по умолчанию.
dist
- это папка, в которой хранятся ваши сгенерированные архивы (поэтому она обновляется с помощью clean и build).
build
содержит скомпилированные классы и ресурсы, но не сжатые архивы.
Maven по умолчанию помещает содержимое обоих файлов в папку target
.
Папка deploy
- это место, куда вы помещаете свои сгенерированные артефакты (либо архивы, либо деревья каталогов с той же компоновкой, что и архивы, архивные файлы с расширением a.k.a.), чтобы сервер приложений мог их обслуживать.
В средах разработки нет ничего необычного в том, чтобы настроить сервер для сканирования папок dist
на наличие сгенерированных артефактов и их повторного развертывания. Таким образом, в этом смысле папки deploy и dist могут совпадать.
Вы даже можете иметь сценарии развертывания "на месте". Это работает путем компиляции ваших классов прямо в папку WEB-INF/classes
внутри webapp
(с чем-то вроде Maven war:inplace
goal). Если вы настроили свой сервер на сканирование изменений в этой папке, вы можете отредактировать ресурсы, такие как jps, на месте и немедленно отразить их в своем работающем приложении (горячее развертывание артефакта с разнесенным расширением a.k.a.).
Конечно, вы можете сделать что-то похожее, указав своей IDE скопировать ресурсы и скомпилированные классы в разобранную структуру архива и сконфигурировав сервер для его сканирования. Netbeans стремится использовать build/web
для этой цели.
Также иногда постепенное повторное развертывание невозможно, и часто полное повторное развертывание нежелательно (некоторые приложения могут занять несколько минут для повторного развертывания). Вот почему вы можете использовать отдельные папки / развертывать свои артефакты как jars / wars / ear и т. Д.
Компиляция, упаковка и развертывание - это очень разные фазы / концепции жизненного цикла сборки, которые могут происходить или не происходить вместе.
Надеюсь, этой информации хватит, чтобы вы пошли.
Ура,