1. Знайомство з архетипами

Є ще один спосіб створити Maven-проєкт в IDEA – на основі архетипу:

Maven-проект у IDEA

Тут пропонується створити проєкт на основі одного з архетипів, які вже існують. Що ж це за архетипи і навіщо вони нам потрібні?

Maven стандартизував шаблони проєктів – такі шаблони називаються архетипами. Пам'ятаєш стартову структуру проекту - папки src, java, test тощо? Таку структуру папок встановлено за допомогою архетипу.

Зразки шаблонів є на офіційному сайті Maven. З їхньою допомогою можна згенерувати різні стартові проєкти – простий застосунок, плагін, сайт.

Список доступних архетипів можна отримати, якщо виконати в консолі команду: mvn archetype:generate

2. Популярні архетипи

Найпопулярніші архетипи – це:

  • maven-archetype-quickstart;
  • maven-archetype-site;
  • maven-archetype-webapp;
  • maven-archetype-j2ee-simple;
  • jpa-maven-archetype;
  • spring-mvc-quickstart.

Якщо хочеш створити порожній Java-проєкт, використовуй архетип maven-archetype-quickstart. Саме результат його роботи видно при створенні проєкту в IDEA в попередній лекції.

Якщо хочеш створити вебзастосунок, який буде працювати всередині вебсервера, відображати HTML-сторінки тощо, можеш сміливо брати за основу архетип maven-archetype-webapp.

Для створення сайту можна використовувати архетип maven-archetype-site. Або навіть архетип maven-archetype-site-simple, якщо сайт має бути дуже простим. Спробуй різні варіанти та подивися, який тобі більше сподобається.

Для роботи з Hibernate або JPA можна використовувати архетип jpa-maven-archetype.

Ну і нарешті, для роботи зі Spring теж є спеціальний архетип – spring-mvc-quickstart. Дуже корисним він буде саме для новачків. Більш детальну інформацію про нього можна знайти за цим посиланням.

Чим хороші архетипи? Вони навчають писати проєкти з нуля. Ніхто вже не пише їх просто на Java. Сучасні проєкти створюються на стеку технологій: списку з 5-10 фреймворків та пари десятків бібліотек — ось сучасна «мова, якою я пишу».

3. Вебзастосунок на Maven

Окремо хотілося б зупинитися на архетипі maven-archetype-webapp.

Це класичний вебзастосунок, написаний на Java. І хоча він трохи застарів після Spring'а, що перевершив його в популярності, тобі як новачкові, він буде дуже корисним. Що потрібно знати про цей архетип?

Він дозволяє зібрати простий вебзастосунок – результатом складання буде war-файл. Деплой можна налаштувати таким чином, щоб твій вебзастосунок одразу додавалася до Tomcat. І нарешті, ти можеш поекспериментувати з примітивними сервлетами та JSP.

Якщо ти створиш проєкт на основі цього архетипу, отримаєш таку структуру папок:

Maven-проект у IDEA 2

З цікавого тут кілька речей:

  • папка webapp;
  • папка WEB-INF;
  • файл web.xml;
  • index.jsp.

По-перше, тут є папка webapp (від Web Application), в якій зберігатимуться всі ресурси твого вебзастосунку.

По-друге, файл web.xml – це дескриптор розгортання вебпрограми. У ньому описано, як твій вебзастосунок має взаємодіяти з вебсервером та його клієнтами.

По-третє, тут є файл index.jsp, який є досить простою формою сервлета. Він робочий, і ти можеш поекспериментувати зі своїм першим JSP-сервлетом, змінюючи його.

Докладніше про все це ми розповімо у лекції, присвяченій сервлетам та вебзастосункам.