шпаргалки
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

4.1 KiB

MAVEN : автоматизация сборки приложений

Назначение и область применения

Основные принципы

Термины и определения

архетип (archetype) - шаблон или макет структуры приложения

зависимость (dependency) - внешняя библиотека, подключаемая к проекту

плагин (plugin) -

Типы формируемых maven пакетов (packages) / package goals

jar (Java archive)

goal : jar

Фазы проекта jar:

  • resources: resources
  • compiler: compile
  • resources: testResources
  • compiler: testCompile
  • surefire: test
  • jar: jar
  • install: install
  • deploy: deploy

jar, war ejb, par, rar - имеют схожие жизненные циклы проектов, различается только их цель (goal)

<!-- метод упаковки -->
<packaging>jar</packaging>

war (web application archive)

goal : war

war-архив может включать:

  • Java servlets
  • JSPs
  • HTML pages
  • a deployment descriptor
  • and related resources
<!-- метод упаковки -->
<packaging>war</packaging>

ear (Enterprise application archive)

Архив, содержащий сжатый многомодульный проект Java EE, включает один или несколько модулей war, ejb. ear архив для развертывания требует наличия сервера приложений.

Жизненный цикл maven проекта

Фазы (phase) жизненного цикла проекта maven:

  1. clean — удаляются все скомпилированные файлы из каталога target (место, в котором сохраняются готовые артефакты);
  2. validate — идет проверка, вся ли информация доступна для сборки проекта;
  3. compile — компилируются файлы с исходным кодом;
  4. test — запускаются тесты;
  5. package — упаковываются скомпилированные файлы (в jar, war и т.д. архив);
  6. verify — выполняются проверки для подтверждения готовности упакованного файла;
  7. install — пакет помещается в локальный репозиторий. Теперь он может использоваться другими проектами как внешняя библиотека;
  8. site — создается документация проекта;
  9. deploy — собранный архив копируется в удаленный репозиторий.

Также у каждой фазы есть пре- и пост-фазы: например, pre-deploy, post-deploy, pre-clean, post-clean, но используются они довольно редко.

Создание приложения из архетипа

основные мавен архетипы: http://maven.apache.org/guides/introduction/introduction-to-archetypes.html

Создание собственного архетипа

Управление зависимостями

Зависимости могут браться:

  • из центрального (глобального) хранилища maven https://mvnrepository.com/
  • из стороннего хранилища
  • из локального хранилища (создается на пользовательской мшине, при установке maven)
<!-- Объявление зависимостей -->
<dependency>
    <groupId>[наименование пакета]</groupId>
    <artifactId>[наименование библиотеки]</artifactId>
    <version>[версия]</version>
</dependency>

Собственный репозиторий

http://nexus.sonatype.org/ https://jfrog.com/ https://archiva.apache.org/