Java - разница между папками dist и deploy - PullRequest
7 голосов
/ 16 сентября 2011

Простите за вопрос новичка, но в чем разница между папками dist и deploy? Похоже, то же самое - оба содержат .jar файлов. Однако при очистке и сборке проекта создается впечатление, что обновляется только папка dist. Как обновляется папка развертывания?

Спасибо.

Ответы [ 2 ]

5 голосов
/ 17 сентября 2011

Я предполагаю, что вы используете макет каталога, аналогичный тому, который 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 и т. Д.

Компиляция, упаковка и развертывание - это очень разные фазы / концепции жизненного цикла сборки, которые могут происходить или не происходить вместе.

Надеюсь, этой информации хватит, чтобы вы пошли.

Ура,

4 голосов
/ 17 сентября 2011

Обычно проект отвечает за создание одного артефакта, когда этот артефакт создается, он помещается в каталог с именем target или dist.Когда ваш проект отвечает за создание веб-приложения, вам нужно место для размещения файлов в вашем проекте для запуска в контейнере сервлетов или на сервере приложений, и это место - папка развертывания.Таким образом, каталог dist обычно содержит один артефакт, такой как war, ear или jar, в то время как в папке deploy содержимое взорвано в структуре каталогов, где сервер приложений может их использовать.То, как обновляется содержимое папки развертывания, зависит от процесса сборки или интеграции с IDE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...