JAVA, maven, servlet [закрыт]

170
13 мая 2019, 17:40

Зачем нужен maven, когда работаем с сервлетами?

Answer 1

Кажется это вопрос из разряда: нужна ли мне IDE для написания кода... Можно ведь писать и в простом текстовом редакторе, совсем без IDE. С другой стороны с IDE, все же удобнее.... Тоже самое и с maven'ом или его аналогом gradle.

Можно и в ручную весь проект собирать, но Maven позволяет это делать удобнее, быстрее. Укажешь какую-то зависимость (библиотеку) в pom файле, и она тебе сама закачается, перед билдом автоматом прогонятся тесты, проект соберется в нужном тебе виде (jar, war...) и в нужную тебе директорию с нужным именем... и многое другое (можно например обфускацию кода прикрутить или еще что-нибудь). И все это нажатием одной кнопочки. Удобно.

В отношении сервлетов. Вот у тебя проект, ты хочешь проверять в процессе разработки, как он работает... при этом тебе важно чтобы все происходило автоматически. Ты на кнопку нажал, а там все запустилось и тебе показало прямо в браузере... Для этого тебе нужно проект собрать в фаил *.war (вот Maven этот war тебе и соберет как раз)... потом IDE его подхватит и задеплоит в Tomcat, который сама для тебя запустит.

Вообще, есть хорошее видео у Немчинского, в котором роль и возможности Maven подробно объясняются https://www.youtube.com/watch?v=IAbZVA4tK6M

Answer 2

Ну как бэ: для собственно написания сервлетов maven вроде как не обязателен.

Для написания сервлетов точно нужна библиотека, а вот как прикрутить библиотеку к исходникам - тут начинается и самое интересное. Вариантов тьма:

  1. Вручную выкачать и прикрутить его в CLASSPATH или к IDE
  2. Использовать maven, который сам выкачает его из сети
  3. Использовать gradle, который также сам выкачает из сети (как правило из серверов maven)
  4. Ну и т.д.

Дальше начинается другая история деплоймента (разворачивания) сервлета в контейнере. Тоже вариантов много:

  1. Врукопашную через copy, с перезапуском сервера
  2. Воспользоваться средствами самого сервера/контейнера
  3. Использовать maven
  4. Применить gradle
  5. Что-то из набора devops: docker и проч.

Как то так.

READ ALSO
Условия для if и else

Условия для if и else

Хочу создать условия для вывода информации о пассажирах:

156
Как в Java преобразовать Date в Long, если Date до 1970 года?

Как в Java преобразовать Date в Long, если Date до 1970 года?

Как в Java преобразовать Date в Long, если Date до 1970 года?

146