Тип | програма для автоматичного складання |
---|---|
Розробник | Apache Software Foundation |
Стабільний випуск | 3.9.0 (31 січня 2023 ) |
Платформа | віртуальна машина Java |
Операційна система | крос-платформовий |
Мова програмування | Java |
Ліцензія | Apache License 2.0 |
Репозиторій | github.com/apache/maven |
Вебсайт | maven.apache.org |
|
«Apache Maven» — це засіб автоматизації роботи з програмними проєктами, який спочатку використовувався для Java проєктів. Використовується для керування (management) та складання (build) програм. Створений 2002 року Джейсоном ван Зилом. За принципами роботи кардинально відрізняється від Apache Ant, та має простіший вигляд щодо build-налаштувань, яке надається в форматі XML. XML-файл описує проєкт, його зв'язки з зовнішніми модулями й компонентами, порядок будування (build), теки та необхідні плагіни. Сервер із додатковими модулями та додатковими бібліотеками розміщується на серверах. Раніше Maven був частиною Jakarta Project.
Для опису програмного проєкту, який потрібно побудувати (build), Maven використовує конструкцію відому як (POM), залежності від зовнішніх модулів, компонентів та порядку побудови. Виконання певних, чітко визначених завдань — таких, як компіляція коду та пакетування відбувається шляхом досягнення заздалегідь визначених цілей (targets).
Ключовою особливістю Maven є його мережева готовність (network-ready).
Рушій ядра може динамічно завантажувати плагіни з репозиторію, того самого репозиторію, що забезпечує доступ до багатьох версій різних Java-проєктів з відкритим кодом, від Apache та інших організацій та окремих розробників. Цей репозиторій та його реорганізований наступник, — Maven 2 репозиторій, — намагається бути де-факто механізмом для дистрибуції Java програм, але прийняття його в такій ролі йде повільно.
Maven забезпечує підтримку побудови не просто перебираючи файли з цього репозиторію, але й завантажуючи назад артефакти у кінці побудови. Локальний кеш звантажених артефактів діє як первісний засіб синхронізації виходу проєктів на локальній системі.
Maven базується на плагін-архітектурі, що дозволяє зробити використання будь-якої програми контрольованим через стандартний вхід. Теоретично, це могло б дозволити будь-кому писати плагіни для інтерфейсу з інструментами для побудови (компілятори, тестери тощо) для будь-якої мови. На ділі, підтримка й використання для мов відмінних від Java були мінімальною. Тепер існують плагіни для .NET та 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>
Посилання
- Сайт проєкту [ 24 липня 2011 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
founder Apache MavenTipprograma dlya avtomatichnogo skladannyaRozrobnikApache Software FoundationStabilnij vipusk3 9 0 31 sichnya 2023 16 misyaciv tomu 2023 01 31 Platformavirtualna mashina JavaOperacijna sistemakros platformovijMova programuvannyaJavaLicenziyaApache License 2 0Repozitorijgithub com apache mavenVebsajtmaven apache org Mediafajli u Vikishovishi Apache Maven ce zasib avtomatizaciyi roboti z programnimi proyektami yakij spochatku vikoristovuvavsya dlya Java proyektiv Vikoristovuyetsya dlya keruvannya management ta skladannya build program Stvorenij 2002 roku Dzhejsonom van Zilom Za principami roboti kardinalno vidriznyayetsya vid Apache Ant ta maye prostishij viglyad shodo build nalashtuvan yake nadayetsya v formati XML XML fajl opisuye proyekt jogo zv yazki z zovnishnimi modulyami j komponentami poryadok buduvannya build teki ta neobhidni plagini Server iz dodatkovimi modulyami ta dodatkovimi bibliotekami rozmishuyetsya na serverah Ranishe Maven buv chastinoyu Jakarta Project Dlya opisu programnogo proyektu yakij potribno pobuduvati build Maven vikoristovuye konstrukciyu vidomu yak POM zalezhnosti vid zovnishnih moduliv komponentiv ta poryadku pobudovi Vikonannya pevnih chitko viznachenih zavdan takih yak kompilyaciya kodu ta paketuvannya vidbuvayetsya shlyahom dosyagnennya zazdalegid viznachenih cilej targets Klyuchovoyu osoblivistyu Maven ye jogo merezheva gotovnist network ready Rushij yadra mozhe dinamichno zavantazhuvati plagini z repozitoriyu togo samogo repozitoriyu sho zabezpechuye dostup do bagatoh versij riznih Java proyektiv z vidkritim kodom vid Apache ta inshih organizacij ta okremih rozrobnikiv Cej repozitorij ta jogo reorganizovanij nastupnik Maven 2 repozitorij namagayetsya buti de fakto mehanizmom dlya distribuciyi Java program ale prijnyattya jogo v takij roli jde povilno Maven zabezpechuye pidtrimku pobudovi ne prosto perebirayuchi fajli z cogo repozitoriyu ale j zavantazhuyuchi nazad artefakti u kinci pobudovi Lokalnij kesh zvantazhenih artefaktiv diye yak pervisnij zasib sinhronizaciyi vihodu proyektiv na lokalnij sistemi Maven bazuyetsya na plagin arhitekturi sho dozvolyaye zrobiti vikoristannya bud yakoyi programi kontrolovanim cherez standartnij vhid Teoretichno ce moglo b dozvoliti bud komu pisati plagini dlya interfejsu z instrumentami dlya pobudovi kompilyatori testeri tosho dlya bud yakoyi movi Na dili pidtrimka j vikoristannya dlya mov vidminnih vid Java buli minimalnoyu Teper isnuyut plagini dlya NET ta C C PrikladMaven konfiguruye proyekti za dopomogoyu konstrukciyi ProjectObjectModel sho zberigayetsya v fajli pom xml Najprostishij priklad cogo fajlu lt project gt lt versiya modeli dlya POM iv Maven 2 x zavzhdi povinna buti 4 0 0 gt lt modelVersion gt 4 0 0 lt modelVersion gt lt koordinati proyektu tobto nabir znachen yaki dozvolyayut odnoznachno identifikuvati cej proyekt gt lt groupId gt com mycompany app lt groupId gt lt artifactId gt my app lt artifactId gt lt version gt 1 0 lt version gt lt zalezhnosti vid bibliotek gt lt dependencies gt lt dependency gt lt koordinati neobhidnoyi biblioteki gt lt groupId gt junit lt groupId gt lt artifactId gt junit lt artifactId gt lt version gt 3 8 1 lt version gt lt cya biblioteka vikoristovuyetsya tilki dlya zapusku i kompilyaciyi testiv gt lt scope gt test lt scope gt lt dependency gt lt dependencies gt lt project gt PosilannyaSajt proyektu 24 lipnya 2011 u Wayback Machine