Apache Maven

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Apache Maven
Maven logo.svg
Розробник(и) Apache Software Foundation
Стабільний випуск 3.2.1 (21 лютого 2014; 191 день тому)
Написано на Java
Операційна система крос-платформовий
Тип Build Tool
Ліцензія Apache License 2.0
Сайт http://maven.apache.org

Maven програмний інструмент для управління Java проектами (management) та складання (build) програм, створений Джейсоном ван Зилом (Jason van Zyl) у 2002 році. У функціонуванні подібний до Apache Ant, але має простішу build-модель конфігурації, яка базується на форматі XML. Maven хоститься Apache Software Foundation, де він був частиною Jakarta Project.

Для опису програмного проекту який потрібно побудувати (build), Maven використовує конструкцію відому як Project Object Model (POM), залежності від зовнішніх модулів, компонентів та порядку побудови. Виконання певних, чітко визначених задач - таких, як компіляція коду та пакетування відбувається шляхом досягнення заздалегідь визначених цілей (targets).

Ключовою особливістю Maven є його мережева готовність (network-ready).

Двигун ядра може динамічно завантажувати плагіни з репозиторію, того самого репозиторію, що забезпечує доступ до багатьох версій різних Java-проектів з відкритим кодом, від Apache та інших організацій та окремих розробників. Цей репозиторій та його реорганізований наступник, - Maven 2 репозиторій, - намагається бути де-факто механізмом для дистрибуції Java програм, але прийняття його в такій якості йде повільно.

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

Maven базується на плаґін-архітектурі, що дозволяє зробити використання будь-якої програми контрольованим через стандартний вхід. Теоретично, це могло б дозволити будь-кому писати плаґіни для інтерфейсу з інструментами для побудови (компілятори, тестери тощо) для будь-якої мови. В дійсності, підтримка і використання для мов відмінних від Java були мінімальною. Тепер існують плаґіни для .NET та C/C++.

Приклад[ред.ред. код]

<project>
  <!-- версія моделі для POM-ів Maven 2.x завжди повинна бути 4.0.0 -->
  <modelVersion>4.0.0</modelVersion>
 
  <!-- координати проекту, тобто набір значень, які
       дозволяють однозначно ідентифікувати цей проект -->
 
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0</version>
 
  <!-- залежності від бібліотек -->
 
  <dependencies>
    <dependency>
 
      <!-- координати необхідної бібліотеки -->
 
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
 
      <!-- ця бібліотека використовується тільки для запуску і компіляції тестів -->
 
      <scope>test</scope>
 
    </dependency>
  </dependencies>
</project>

Посилання[ред.ред. код]