Зачем упаковывать файлы JAR в архив WAR, если они доступны в Maven Central? - PullRequest
0 голосов
/ 16 октября 2011

Интересно, можно ли каким-либо образом сообщить сервлету Servlet для загрузки требуемых JAR-архивов из Maven Central во время развертывания вместо их упаковки в WAR (в WEB-INF/lib).Насколько я понимаю, Java разработана с учетом такого подхода.Это технически возможно?

Ответы [ 2 ]

2 голосов
/ 16 октября 2011

Я не знаю ни одного контейнера сервлета, который делает это. В спецификации сервлета сказано, что файл WAR будет содержать все зависимости для приложения. Конечно, все «технически возможно», и это интересная идея, но я думаю, что вы будете делать много пользовательского кодирования. Единственное, что я думаю о том, что это даже близко, - это Virgo Web Server. Это контейнер OSGi / Spring DM, и он имеет концепцию «хранилище», где артефакты можно найти и загружать по требованию. может быть настроен для использования локального репозитория Maven . Это должен быть относительно короткий шаг, чтобы заставить его использовать удаленное репо, если это еще не вариант. Virgo позволяет развертывать WAR-файлы и пакеты OSGi, но это не типичный контейнер сервлетов.

1 голос
/ 17 октября 2011

Спецификация сервлета предшествует maven. Вот почему военные файлы должны содержать банки.

Если вы спрашиваете, почему они не меняют это: две причины:

  • это нарушит существующие привычки и существующие контейнеры сервлетов
  • maven не является стандартом - стандарт не может полагаться на нестандарт (даже если это де-факто стандарт)

Если вы спрашиваете, возможно ли это и хорошая идея. Это возможно, но это не может быть хорошей идеей. Вы должны развернуть что-то, что уже было протестировано (в поэтапной и / или в среде QA). Вы не можете подтвердить, что зависимость в репо не будет заменена, так как вы не можете быть уверены, что соединение с репозиторием будет нормальным во время развертывания, что нарушит ваше развертывание.

...