Знакомство с архетипами

Есть еще один способ создать Maven-проект в IDEA — на основе архетипа:

Maven-проект в IDEA

Тут предлагается создать проект на основе одного из существующих архетипов. Что же это за архетипы такие и зачем они нам нужны?

Maven стандартизировал шаблоны проектов — такие шаблоны называются архетипами. Помните стартовую структуру проекта — папки src, java, test и так далее? Так вот эта структура папок задана с помощью архетипа.

Образцы шаблонов есть на официальном сайте Maven. С их помощью можно сгенерировать разные стартовые проекты — простое приложение, плагин, сайт.

Список доступных архетипов можно получить, выполнив в консоли команду: mvn archetype:generate

Популярные архетипы

Самые популярные архетипы — это:

  • 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 фреймворков и пары десятков библиотек — вот современный “язык, на котором я пишу”.

Веб-приложение на Maven

Отдельно хотелось бы остановиться на архетипе maven-archetype-webapp.

Это классическое веб-приложение, написанное на Java. И хотя оно немного устарело после набравшего популярность Spring’а, тебе как новичку, оно будет очень полезно. Что нужно знать об этом архетипе?

Он позволяет собрать простое веб-приложение — результатом сборки будет war-файл. Deploy можно настроить так, чтобы твое веб-приложение сразу добавлялось к Tomcat. И наконец, ты можешь поэкспериментировать с примитивными сервлетами и JSP.

Если ты создашь проект на основе этого архетипа, то получишь такую структуру папок:

Maven-проект в IDEA 2

Из интересного тут несколько вещей:

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

Во-первых, тут есть папка webapp (от Web Application), в которой и будут храниться все ресурсы твоего веб-приложения.

Во-вторых, файл web.xml — это дескриптор развертывания веб-приложения. В нем описано как твое веб-приложение должно взаимодействовать с веб-сервером и его клиентами.

В-третьих, тут есть файл index.jsp, который является довольно простой формой сервлета. Он рабочий и ты можешь поэкспериментировать со своим первым JSP-сервлетом, меняя его.

Более подробно обо всем этом мы расскажем в теме посвященной сервлетам и веб-приложениям.