Відмінності між версіями «Apache Maven»

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][очікує на перевірку]
м (заміна застарілого тегу source)
 
(Не показано 3 проміжні версії 2 користувачів)
Рядок 16: Рядок 16:
 
| website = http://maven.apache.org
 
| website = http://maven.apache.org
 
}}
 
}}
'''«Apache Maven»''' — це засіб автоматизації роботи з [[РОзробка програмного забезпечення|програмними проектами]], який спочатку використовувався для [[Java]] проектів. Використовується для управління (management) та складання (build) програм. Створений 2002 року Джейсоном ван Зилом. За принципами роботи кардинально відрізняється від [[Apache Ant]], та має простіший вигляд щодо build-налаштувань, яке надається в форматі [[XML]]. [[XML]]-файл описує проект, його зв'язки з зовнішніми модулями і компонентами, порядок будування (build), папки та необхідні [[Плагін|плагіни.]] Сервер із додатковими модулями та додатковими бібліотеками розміщується на серверах. Раніше Maven, де він був частиною ''[[Jakarta]] Project''.
+
'''«Apache Maven»''' — це засіб автоматизації роботи з [[РОзробка програмного забезпечення|програмними проектами]], який спочатку використовувався для [[Java]] проектів. Використовується для управління (management) та складання (build) програм. Створений 2002 року Джейсоном ван Зилом. За принципами роботи кардинально відрізняється від [[Apache Ant]], та має простіший вигляд щодо build-налаштувань, яке надається в форматі [[XML]]. [[XML]]-файл описує проект, його зв'язки з зовнішніми модулями і компонентами, порядок будування (build), папки та необхідні [[Плагін|плагіни.]] Сервер із додатковими модулями та додатковими бібліотеками розміщується на серверах. Раніше Maven був частиною ''[[Jakarta]] Project''.
   
Для опису програмного проекту який потрібно побудувати (''build''), Maven використовує конструкцію відому як [[Project Object Model]] (POM), залежності від зовнішніх модулів, компонентів та порядку побудови. Виконання певних, чітко визначених задач — таких, як компіляція коду та пакетування відбувається шляхом досягнення заздалегідь визначених цілей (targets).
+
Для опису програмного проекту, який потрібно побудувати (''build''), Maven використовує конструкцію відому як [[Project Object Model]] (POM), залежності від зовнішніх модулів, компонентів та порядку побудови. Виконання певних, чітко визначених задач — таких, як компіляція коду та пакетування відбувається шляхом досягнення заздалегідь визначених цілей (targets).
   
 
Ключовою особливістю Maven є його мережева готовність (network-ready).
 
Ключовою особливістю Maven є його мережева готовність (network-ready).
Рядок 26: Рядок 26:
 
Maven забезпечує підтримку побудови не просто перебираючи файли з цього репозиторію, але й завантажуючи назад артефакти у кінці побудови. Локальний кеш звантажених артефактів діє як первісний засіб синхронізації виходу проектів на локальній системі.
 
Maven забезпечує підтримку побудови не просто перебираючи файли з цього репозиторію, але й завантажуючи назад артефакти у кінці побудови. Локальний кеш звантажених артефактів діє як первісний засіб синхронізації виходу проектів на локальній системі.
   
Maven базується на плаґін-архітектурі, що дозволяє зробити використання будь-якої програми контрольованим через стандартний вхід. Теоретично, це могло б дозволити будь-кому писати плаґіни для інтерфейсу з інструментами для побудови ([[Компілятор|компілятори]], тестери тощо) для будь-якої мови. В дійсності, підтримка і використання для мов відмінних від [[Java]] були мінімальною. Тепер існують плаґіни для [[.NET]] та [[C (мова програмування)|C]]/[[C++]].
+
Maven базується на плагін-архітектурі, що дозволяє зробити використання будь-якої програми контрольованим через стандартний вхід. Теоретично, це могло б дозволити будь-кому писати плагіни для інтерфейсу з інструментами для побудови ([[Компілятор|компілятори]], тестери тощо) для будь-якої мови. В дійсності, підтримка і використання для мов відмінних від [[Java]] були мінімальною. Тепер існують плагіни для [[.NET]] та [[C (мова програмування)|C]]/[[C++]].
   
 
== Приклад ==
 
== Приклад ==
Maven конфігурує проекти за допомогою конструкції ProjectObjectModel, що зберігається в файлі POM.xml. Найпростіший приклад цього файлу:<source lang="xml">
+
Maven конфігурує проекти за допомогою конструкції ProjectObjectModel, що зберігається в файлі pom.xml. Найпростіший приклад цього файлу:<syntaxhighlight lang="xml">
 
<project>
 
<project>
 
<!-- версія моделі для POM-ів Maven 2.x завжди повинна бути 4.0.0 -->
 
<!-- версія моделі для POM-ів Maven 2.x завжди повинна бути 4.0.0 -->
Рядок 59: Рядок 59:
 
</dependencies>
 
</dependencies>
 
</project>
 
</project>
  +
</syntaxhighlight>
</source>
 
   
 
== Посилання ==
 
== Посилання ==
Рядок 70: Рядок 70:
 
[[Категорія:Apache Software Foundation|Maven]]
 
[[Категорія:Apache Software Foundation|Maven]]
 
[[Категорія:Програмне забезпечення на Java]]
 
[[Категорія:Програмне забезпечення на Java]]
  +
[[Категорія:Програмне забезпечення, що використовує ліцензію Apache]]
  +
[[Категорія:Статті з прикладами коду мовою XML]]

Поточна версія на 12:45, 12 травня 2020

Apache Maven
Maven logo.svg
Тип Build Tool
Розробник Apache Software Foundation
Стабільний випуск 3.3.9 (22 листопада, 2015; 4 роки тому (2015-11-22))
Репозиторій gitbox.apache.org/repos/asf/maven.git
Платформа Віртуальна машина Java
Операційна система крос-платформовий
Написано на Java
Ліцензія Apache License 2.0
maven.apache.org

«Apache Maven» — це засіб автоматизації роботи з програмними проектами, який спочатку використовувався для Java проектів. Використовується для управління (management) та складання (build) програм. Створений 2002 року Джейсоном ван Зилом. За принципами роботи кардинально відрізняється від Apache Ant, та має простіший вигляд щодо build-налаштувань, яке надається в форматі XML. XML-файл описує проект, його зв'язки з зовнішніми модулями і компонентами, порядок будування (build), папки та необхідні плагіни. Сервер із додатковими модулями та додатковими бібліотеками розміщується на серверах. Раніше Maven був частиною Jakarta Project.

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

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

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

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

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

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

Maven конфігурує проекти за допомогою конструкції ProjectObjectModel, що зберігається в файлі pom.xml. Найпростіший приклад цього файлу:

<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>

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