Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ знакомство с Maven

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java

Maven β€” инструмСнт для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π‘ Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² основном Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, хотя Π΅ΡΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с C/C++, Ruby, Scala, PHP ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны особСнности ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния Maven, описан процСсс установки ΠΈ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½Π° структура Ρ„Π°ΠΉΠ»Π° описания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

НазначСниС ΠΈ особСнности

Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π½Π° Java ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ уровня Β«Hello, world!Β» ΠΌΠΎΠΆΠ½ΠΎ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Но Ρ‡Π΅ΠΌ слоТнСС Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ПО ΠΈ Ρ‡Π΅ΠΌ большС ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ рСсурсов, Ρ‚Π΅ΠΌ слоТнСС Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° для сборки. Maven Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для облСгчСния этой Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Одна ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… особСнностСй Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° β€” Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ описаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ аспСкту сборки β€” всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ настроСны ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ИзмСнСния Π½ΡƒΠΆΠ½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ лишь Π² Ρ‚ΠΎΠΌ ΠΎΠ±ΡŠΡ‘ΠΌΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ программист Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ стандартных настроСк.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ достоинство ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” Π³ΠΈΠ±ΠΊΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями. Maven ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π² свой Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ зависимости.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°ΡŽΡ‚ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΎΡ‚ ОБ. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ зависят ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½ΠΎ Maven позволяСт Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ внимания Π½Π° этот аспСкт.

ΠŸΡ€ΠΈ нСобходимости систСму сборки ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ собствСнныС Π½ΡƒΠΆΠ΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΈ Π°Ρ€Ρ…Π΅Ρ‚ΠΈΠΏΡ‹. А Ссли Π½ΠΈΡ‡Π΅Π³ΠΎ подходящСго Π½Π΅ нашлось β€” ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свои.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Maven с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΎΠ΄Π½Π°ΠΊΠΎ этот Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π² Eclipse, IntelliJ IDEA, NetBeans ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ IDE.

Установка, настройка ΠΈ созданиС стандартного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Maven ΠΌΠΎΠΆΠ½ΠΎ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ страницы ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’Π°ΠΌ ΠΆΠ΅ вас познакомят с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ трСбованиями β€” Π½Π° машинС Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн JDK, Π° Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся свободноС мСсто Π½Π° дискС, ΠΎΠΊΠΎΠ»ΠΎ 500 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚. Π­Ρ‚ΠΎ мСсто Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ для самой установки, ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ использовано для создания локального рСпозитория.

На страницС скачивания Π²Ρ‹ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ², для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π°Π·Π° Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΈ. Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ, Ссли захочСтся всё ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΏΠΎΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ Π² Maven.

Π’ ОБ Π½Π° основС Unix ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ консольной ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ:

Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΠΏΠ°ΠΏΠΊΡƒ для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π½Π΅Ρ‘. Π”Π°Π»Π΅Π΅ создаём Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Для этого Π² консоли Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Выглядит довольно слоТно, поэтому Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Π΅Ρ‘ ΠΏΠΎ порядку.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Maven сгСнСрируСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄ΡƒΡ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΠ΅ src/main/java (ΠΈ сСйчас Ρ‚Π°ΠΌ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ автоматичСски сгСнСрированный Ρ„Π°ΠΉΠ»), Π½ΠΎ Π½Π°ΠΌ сСйчас интСрСснСС Ρ„Π°ΠΉΠ» pom.xml Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‚ самый Ρ„Π°ΠΉΠ» описания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Maven. Он написан Π½Π° языкС POM, входящим Π² сСмСйство XML:

РазбСрёмся, Ρ‡Ρ‚ΠΎ всё это Π·Π½Π°Ρ‡ΠΈΡ‚.

Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡Π°Ρ‚ Ρ‚Π΅Π³ΠΈ Π² pom.xml

ΠšΡΡ‚Π°Ρ‚ΠΈ, это Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΠΎΠ²ΠΎΠ΄ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Maven выполняСт сборку ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„Π°Π·Π°ΠΌΠΈ. ΠŸΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΠΈΡ… названия Π½Π° английском, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² качСствС ΠΊΠΎΠΌΠ°Π½Π΄.

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ! Π’Ρ‹ собрали ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Maven. Для Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изучСния инструмСнта совСтуСм ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° эти ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Apache Maven β€” основы

ПослС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚ΠΎΠΏΠΈΠΊΠ° ΠΎ Maven Π² коммСнтариях Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ вопросы ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, с Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ pom.xml, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΈ Ρ‚.ΠΏ. Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΎΠΏΠΈΠΊ Π±ΡƒΠ΄Π΅Ρ‚ своСго Ρ€ΠΎΠ΄Π° getting started ΠΈΠ»ΠΈ f.a.q.

ВСрминология

Как Π² любой систСмС, Π² Maven, Π΅ΡΡ‚ΡŒ свой Π½Π°Π±ΠΎΡ€ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² ΠΈ понятий.

Вся структура ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° описываСтся Π² Ρ„Π°ΠΉΠ»Π΅ pom.xml (POM – Project Object Model), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ понятиСм Maven являСтся Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ β€” это, ΠΏΠΎ сути, любая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, хранящаяся Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ какая-Ρ‚ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½.

Зависимости β€” это Ρ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСпосрСдствСнно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ для компиляции ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π΅Π³ΠΎ тСстирования.

ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ самим Maven’ΠΎΠΌ ΠΏΡ€ΠΈ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ для ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ (Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ‚, созданиС Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для Eclipse ΠΈ Π΄Ρ€.).

Π’ самом Π½Π°Ρ‡Π°Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Maven, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ столкнСтся с Ρ‚Π°ΠΊΠΈΠΌ понятиСм ΠΊΠ°ΠΊ Π°Ρ€Ρ…Π΅Ρ‚ΠΈΠΏ. АрхСтип β€” это нСкая стандартная ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° (Π²Π΅Π±, swing-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅). Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Maven Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ строятся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΈ Π² соотвСтствии с Π°Ρ€Ρ…Π΅Ρ‚ΠΈΠΏΠΎΠΌ создаСт структуру ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° состоит ΠΈΠ· названия Π³Ρ€ΡƒΠΏΠΏΡ‹, собствСнного названия ΠΈ вСрсии. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Spring Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π² срСдС Maven: org.springframework.spring:2.5.5. ПослСдний Π΄ΠΎΠΌΠ΅Π½ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ всСгда artifactId, всС, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ – groupId – Ρ…ΠΎΡ€ΠΎΡˆΠΎ это Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅!

На ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Ρƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ описан Π² Π²Ρ‹ΡˆΠ΅ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

Установка Maven

ПослСднюю Π²Π΅Ρ€ΡΠΈΡŽ всСгда ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½Π° страницС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС. ΠŸΡ€ΠΎΡΡ‚ΠΎ распаковываСм Π°Ρ€Ρ…ΠΈΠ² Π² Π»ΡŽΠ±ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ. Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Path, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Maven. Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² Win + Pause – Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ – ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды – Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ окошкС Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ, Π²Π²ΠΎΠ΄ΠΈΠΌ имя M2_HOME ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ допустим β€œC:\apache-maven-2.2.1”. Π”Π°Π»Π΅Π΅ Ρ‚Π°ΠΌ ΠΆΠ΅ создаСм Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ M2 со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ %M2_HOME%\bin. Π’Π°ΠΊ ΠΆΠ΅ убСТдаСмся, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ пСрСмСнная JAVA_HOME с ΠΏΡƒΡ‚Π΅ΠΌ ΠΊ JDK. Π•Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ Β«c:\Program Files\Java\jdk1.6.0_10\Β». И Π½Π°ΠΊΠΎΠ½Π΅Ρ† Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ окошкС создаСм/ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Path, Π² Π½Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ %M2%, Ρ‡Ρ‚ΠΎΠ±Ρ‹ наша ΠΏΠ°ΠΏΠΎΡ‡ΠΊΠ° с исполняСмым Ρ„Π°ΠΉΠ»ΠΎΠΌ Maven Π±Ρ‹Π»Π° Π²ΠΈΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ нашСй установки. Для этого Π·Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Π”ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ информация ΠΎ вСрсиях Maven, jre ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅:

Maven создаст Π²Π°ΠΌ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² вашСй Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ C:\Documents and Settings\username\.m2\repository

ВсС, Maven Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ созданию прилоТСния.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния ΠΈΠ· Π°Ρ€Ρ…Π΅Ρ‚ΠΈΠΏΠ°

На сайтС Maven пСрСчислСны Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярныС Π°Ρ€Ρ…Π΅Ρ‚ΠΈΠΏΡ‹ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой ΠΈΠ»ΠΈ Π½Π°ΠΉΡ‚ΠΈ Π±ΠΎΠ»Π΅Π΅ спСцифичный Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ здСсь.

Π˜Ρ‚Π°ΠΊ, допустим нас интСрСсуСт Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ – Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ подходящий Π°Ρ€Ρ…Π΅Ρ‚ΠΈΠΏ, называСтся ΠΎΠ½ maven-archetype-webapp. Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Maven:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈΡ†Π΅Π·Ρ€Π΅Ρ‚ΡŒ довольно Π½Π°Π³Π»ΡΠ΄Π½ΡƒΡŽ структуру ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с говорящими названиями java – здСсь Π±ΡƒΠ΄ΡƒΡ‚ ваши классы, webapp – здСсь Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ странички Π²Π΅Π±-прилоТСния, resources – Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° рСсурсы Π² classpath (Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€), test – ΡŽΠ½ΠΈΡ‚-тСсты, соотвСтствСнно ΠΈ Ρ‚.ΠΏ.

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π—Π΄Π΅ΡΡŒ всС просто – выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ прилоТСния, Ρ‚Π°ΠΌ, Π³Π΄Π΅ находится Ρ„Π°ΠΉΠ» pom.xml. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° скомпилируСт ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ помСстит Π΅Π³ΠΎ Π² ΠΏΠ°ΠΏΠΊΡƒ target, Π° вторая Π΅Ρ‰Π΅ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ Π΅Π³ΠΎ ΠΊ Π²Π°ΠΌ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π•ΡΡ‚ΡŒ полСзная функция, Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΠΊΠΎΠ½Π²Π΅Π΅Ρ€Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ

ΠΈ Maven сначала очистит ΠΏΠ°ΠΏΠΊΡƒ target ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΠΎΡ‚ΠΎΠΌ собСрСт Π΅Π³ΠΎ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ дСйствий для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Maven ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ кастомизации ΠΈ добавлСнию зависимостСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Зависимости ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ находятся Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, поэтому ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ сразу Π² Ρ€Π°Π·Π΄Π΅Π» dependencies вашСго pom-Ρ„Π°ΠΉΠ»Π°. НапримСр Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Spring Framework Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ:

Π’Π΅Ρ€ΡΠΈΡŽ хотя ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ‚ΠΎΠ³Π΄Π° Maven Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚ послСдний Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π½ΠΎ я Π²Π°ΠΌ Π»ΠΈΡ‡Π½ΠΎ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ это Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΊ Ρƒ нас Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π±Ρ‹Π²Π°Π»ΠΈ случаи, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ просто Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ пСрСставал ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π» ΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ оттСстированных мСстах, хотя Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ Π½ΠΈΠΊΡ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ мСнял.

БпСцифичСскиС Π²Π΅Ρ‰ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ находятся Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ Ρ‚ΠΎΠ³Π΄Π° Π²Π°ΠΌ придСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ производитСля Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ JSF-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ajax-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² JBoss RichFaces.

Π‘ зависимостями всС просто:

А Π²ΠΎΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ JBoss Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€ΡƒΡ‡ΠΊΠ°ΠΌΠΈ Π»ΠΈΠ±ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ settings.xml, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»Π΅ΠΆΠΈΡ‚ Π² ΠΊΠΎΡ€Π½Π΅ вашСго локального рСпозитория, Π»ΠΈΠ±ΠΎ Π² самом Ρ„Π°ΠΉΠ»Π΅ pom.xml, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π½ΡƒΠΆΠ΅Π½ Π»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π²ΠΎ всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π»ΠΈΠ±ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ, соотвСтствСнно:

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π° сайтах ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΈΡˆΡƒΡ‚ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для встраивания ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° основС Maven, Π½ΠΎ Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ приходится ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ. Π—Π΄Π΅ΡΡŒ Π½Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ сильно ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ MVNrepository.com β€” ΠΎΠ½ Π²Π°ΠΌ всСгда подскаТСт Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ искомая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡ΠΊΠ°. Но Ссли ΡƒΠΆ ΠΈ Ρ‚Π°ΠΌ Π½Π΅ нашлось, Ρ‚ΠΎ ΠΈΠ· собствСнного ΠΎΠΏΡ‹Ρ‚Π° ΠΌΠΎΠ³Ρƒ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ Π³ΡƒΠ³Π»ΠΈΡ‚ΡŒ Β« pom.xmlΒ». Π‘Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ ΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡƒΠΆΠ΅ Π½Π΅ заботятся ΠΎΠ± ΠΈΡ… распространСнии. Π’ΠΎΠ³Π΄Π° остаСтся ΠΎΠ΄ΠΈΠ½ СдинствСнный способ – Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

ПослСдний ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ jar.

ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈ зависимости, Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ практичСски Ρ‚Π°ΠΊ ΠΆΠ΅. ВмСсто Ρ€Π°Π·Π΄Π΅Π»Π° dependencies – plugins, dependency – plugin, repositories – pluginRepositories, repository – pluginRepository.

Плагинами Maven Π΄Π΅Π»Π°Π΅Ρ‚ всС, Π΄Π°ΠΆΠ΅ нСпосрСдствСнно Ρ‚ΠΎ, для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ затСвался – сборку ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот ΠΏΠ»Π°Π³ΠΈΠ½ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² свойствах ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ссли Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Ρ„ΠΈΡ‡ΠΈ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ для создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для Eclipse с использованиСм WTP ver. 2.0. Π’ Ρ€Π°Π·Π΄Π΅Π» plugins нашСго pom.xml прописываСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ΄Π΅ΠΌ ΠΎΠΏΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Π–Π΄Π΅ΠΌ ΠΏΠΎΠΊΠ° Maven Π½Π°ΠΉΠ΄Π΅Ρ‚ всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈΠ»ΠΈ скачаСт ΠΈΡ… ΠΈ вуаля – Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ наш Maven-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ eclipse. ΠŸΡ€ΠΈ этом Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ классичСском ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅, Π° ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ Eclipse Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π° Π½ΠΈΡ… ссылку Ρ‡Π΅Ρ€Π΅Π· свои ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Π•Π΄ΠΈΠ½ΠΎΠ³ΠΎ списка всСх ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² СстСствСнно Π½Π΅ сущСствуСт, Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ нСпосрСдствСнно Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Maven. Однако Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ названия ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² довольно прямолинСйны ΠΈ сдСлав поиск ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словам Β«maven tomcat pluginΒ» Π²Ρ‹ скорСС всСго ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ссылкой ΠΏΠ»Π°Π³ΠΈΠ½ для Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Tomcat.

БобствСнный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

К соТалСнию сам Π½Π΅ имСю большого ΠΎΠΏΡ‹Ρ‚Π° настройки рСпозитория, Π½ΠΎ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простой ΠΈ распространСнный Nexus. Π—Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π½Π° сайт Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Однако нСльзя ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π±Π΅Π· внимания ΠΈ достойных ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ² Π² Π»ΠΈΡ†Π΅ Artifactory ΠΈ Archiva.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Maven β€” Π·Π°Ρ‡Π΅ΠΌ?

Π­Ρ‚ΠΎ общая модСль ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π’ Π½Π΅ΠΉ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΠ΅ характСристики ΠΊΠ°ΠΊ имя, вСрсия, Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΈΡ… контактная информация, VCS ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ связанныС с Π½ΠΈΠΌ сСтСвыС рСсурсы, Ρ‚ΠΈΠΏ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠ»ΠΈ web-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ называСтся packaging, хотя влияСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‚ΠΈΠΏ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°), связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ сборкС ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΈ описания способа ΠΈΡ… задСйствования. МнС каТутся особСнно Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° этой ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Бвязи с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ модулями

POM допускаСт Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° связСй с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ модулями: Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ наслСдованиС.

Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, эта связь Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„Π°Π· ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° нашСго модуля, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ-зависимостСй (абстрактно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ β€” Π°ΠΆ самому ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ). Π§Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ Ρ„Π°Π·Π΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° трСбуСтся опрСдСляСтся Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ дСйствия зависимости. Maven ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ нСсколько ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… областСй дСйствия ΠΈ позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ свои. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΡΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ дСйствия: compile β€” ΠΎΠ½Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ сборки зависимости Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π½Π° этапС компиляции, выполнСния тСстов ΠΈ Π²ΠΎ врСмя выполнСния.

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ β€” Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ связанный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ являСтся Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ нашСго модуля. Для прохоТдСния нашим ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, входящий Π² Π½Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ эту Ρ„Π°Π·Ρƒ. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ enterprise-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² сСбя web-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΏΠ°ΠΊΠ΅Ρ‚ с EJB ΠΈ ΠΎΠ±Ρ‰ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ сборка Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сборки ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

НаслСдованиС. Вакая связь ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ пСрСнос Π½Π° наслСдника части ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€Π΅Π΄ΠΊΠ°. ΠŸΡ€Π°Π²ΠΈΠ»Π° пСрСноса нСсколько Π·Π°ΠΏΡƒΡ‚Π°Π½Ρ‹, Π½ΠΎ Π² основном дСйствуСт ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€Π΅Π΄ΠΊΠ° становится ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅ΠΌ для ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΌΠΎΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ: Π±Ρ‹Π» создан ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π²Π΅Ρ€ΡΠΈΡŽ JDK для компиляции ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΈ для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ» для ΠΏΠΎΠ²Π΅Ρ€ΠΊΠΈ соотвСтствия исходников стандарту кодирования, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ (Π° ΠΊΠΎΠ΅-Π³Π΄Π΅ ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ использовался πŸ˜‰ ) ΠΊΠ°ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ для всСх Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

ОписаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ сборкС ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²

ОписаниС состоит ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ задСйствуСмого ΠΏΠ»Π°Π³ΠΈΠ½Π°, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅Π³ΠΎ настроСк(ΠΎΠ½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ), ΠΈ собствСнно выполняСмых ΠΈΠΌ Ρ†Π΅Π»Π΅ΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Ρ„Π°Π· ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°(ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС ΠΈΠ΄Π΅ΠΉ, стоящих Π·Π° этими Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ см. Π½ΠΈΠΆΠ΅).

Π­Ρ‚ΠΎΡ‚ элСмСнт нСсколько Ρ‡ΡƒΠΆΠ΄ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΈΠ΄Π΅ΠΈ POM β€” ΠΎΠ½ нСсёт Π½Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ описаниС модуля, Π° инструкции ΠΏΠΎ Π΅Π³ΠΎ сборкС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ инструмСнтом.

Π˜Ρ‚ΠΎΠ³ΠΈ

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ²

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² сборки, устроСнными Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ поиск Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° (ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, вСрсии, Ρ‚ΠΈΠΏΡƒ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°). Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π³Ρ€ΡƒΠΏΠΏΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° Π±Π΅Π· нСобходимости ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΠΏΠΈΠΈ исходных ΠΊΠΎΠ΄ΠΎΠ² ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ сборку Π΄Π΅Ρ€Π΅Π²Π° зависимостСй с 0. Maven-совмСстимыС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΈ стали стандартом Π΄Π΅ Ρ„Π°ΠΊΡ‚ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

НуТно Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ pom-Ρ„Π°ΠΉΠ»Ρ‹, содСрТащиС модСль ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°ΠΌΠΈ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ хранится Π² рСпозитариях вмСстС со всСми (Π½Π° самом Π΄Π΅Π»Π΅ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΡƒΡ€Π΅Π·Π°Π½Π½Ρ‹Π΅ ΠΈΡ… вСрсии, содСрТащиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ модуля ΠΈ зависимости, хранятся всСгда). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ являСтся Π² Ρ‚ΠΎΠΌ числС источником ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (ΠΊΠ°ΠΊ ΠΌΠΈΠ½Π½ΠΈΠΌΡƒΠΌ достаточной для дистрибуции) ΠΎ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² Π½Ρ‘ΠΌ модулях.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° управлСния ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ

НазваниС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ достаточно пафосноС, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ соотвСтствуСт высокой миссии ΠΈ слоТности ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ Π² Π΅Ρ‘ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ познакомится с Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° модуля Π² Maven. Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ называСтся вся ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΎΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сборки Π΄ΠΎ развёртывания. Π’ процСссС прохоТдСния ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹. Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½ Π½Π° Ρ„Π°Π·Ρ‹. КаТдая Ρ„Π°Π·Π° ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ модуля Π² Π½ΠΎΠ²ΠΎΠ΅ состояниС Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΅Ρ‘ прохоТдСния ΠΈ появлСниС Π½ΠΎΠ²Ρ‹Ρ… Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ². КаТдая прСдыдущая Ρ„Π°Π·Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»ΠΈΠ²Π°Π΅Ρ‚ основу для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ. Бписок Ρ„Π°Π· являСтся ΠΏΠΎ сути Ρ‡Π°ΡΡ‚ΡŒΡŽ POM, Π½ΠΎ глобальной, ΠΎΠ±Ρ‰Π΅ΠΉ для всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠŸΠΎΠ½Ρ‹ΠΉ список ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ бСссмыслСнно, Π½ΠΎ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ нСсколько Ρ„Π°Π· (достаточно ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ Π½Π°Π·Π²Π°Π½Π½Ρ‹Ρ…, Π½Π° ΠΌΠΎΠΉ взгляд πŸ™‚ ) Π² порядкС ΠΈΡ… слСдования: compile,… test,… deploy.

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„Π°Π·Ρ‹ выполняСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ†Π΅Π»Π΅ΠΉ Π² зависимости ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ модуля. ЦСль являСтся ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π½Π°Π΄ исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΈ/ΠΈΠ»ΠΈ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°ΠΌΠΈ.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π°. НапримСр Π΅ΡΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Eclipse-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π·Π°Π΄Π°Ρ‡Π° Β«ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Β» ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ привязываСтся Π½ΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°Π·Π΅, Π° вызываСтся заинтСрСсованными Π»ΠΈΡ†Π°ΠΌΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΡ€Π°ΠΉΠ½Π΅ интСрСсной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ mvn являСтся созданиС Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° основС Π°Ρ€Ρ…Π΅Ρ‚ΠΈΠΏΠ°. АрхСтип β€” ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½Ρ‹ΠΉ шаблон ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ Π½Π° Π΅Π³ΠΎ структурС ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ»Π°Π³ΠΈΠ½Π°Ρ…. НапримСр Π΅ΡΡ‚ΡŒ стандартныС Π°Ρ€Ρ…Π΅Ρ‚ΠΈΠΏΡ‹ java-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, web-модуля, ΠΈ нСстандартныС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ grails ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π°Ρ€Ρ…Π΅Ρ‚ΠΈΠΏΠ° ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. АрхСтип β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ шаблон Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ структуры ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… частСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, послС создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΅Π³ΠΎ Π°Ρ€Ρ…Π΅Ρ‚ΠΈΠΏΠ΅ Π½Π΅ остаётся. Π’ΠΈΠΏ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° протяТСнии всСго ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

Π§Ρ‚ΠΎ получаСтся Π² суммС

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ столпа Maven. Π§Ρ‚ΠΎ-ΠΆΠ΅ ΠΎΠ½ΠΈ Π΄Π°ΡŽΡ‚ Π½Π°ΠΌ вмСстС?

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎ-Ρ‚ΠΎ я мСстами отклонился ΠΎΡ‚ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ вопроса ΠΈ Π²ΠΏΠ»ΠΎΡ‚Π½ΡƒΡŽ занялся вопросом Β«ΠΊΠ°ΠΊΒ», Π½Ρƒ Π΄Π° ладно…

Из всСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ простой, Π½ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ вСсьма Ρ€Π΅Π΄ΠΊΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄. Maven β€” Π½Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для сборки Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Maven β€” Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ большого спСктра Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Он Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ связан с языком ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΎΠ½ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ обязан Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ. Π’Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ описания ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ написания ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ Π² Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ инструмСнт. Π”Π°, принятая Π² Π½Ρ‘ΠΌ ΠΏΠΎ модСль ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” сборка Java-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π½ΠΎ это лишь умолчания…

НадСюсь, Ρ‡Ρ‚ΠΎ послС прочтСния Ρ‚ΠΎΠΏΠΈΠΊΠ° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° вопросы, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅ πŸ˜‰

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Π°ΡΡ‚ΡŒ 4. ΠžΡΠ½ΠΎΠ²Ρ‹ Maven

Пошаговая установка Maven

Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Maven, скачав Π΅Π³ΠΎ ΠΏΠΎ этой ссылкС.

Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ скачанный Π°Ρ€Ρ…ΠΈΠ² ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния M2_HOME ссылку Π½Π° мСстонахоТдСниС распакованного Π°Ρ€Ρ…ΠΈΠ²Π°. НапримСр, C:\Program Files\maven\

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΎΡΡŒ, Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΏΡ€ΠΎΠΏΠΈΡˆΠΈ:

Если отобразится информация ΠΎ вСрсии Maven, Java ΠΈ Ρ‚.Π΄., всС Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠΉ IntelliJIDEA ΠΈ создай Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΆΠ΅ ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±Π΅Ρ€ΠΈ Maven:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java

НаТми Next ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java

Π”Π°Π»Π΅Π΅ стандартно создай ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΌ мСстС.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ создался, ΠΎΠ±Ρ€Π°Ρ‚ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΅Π³ΠΎ структуру:

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями Π² Maven

На сайтС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Если Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Apache Commons IO, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Dependency Information. Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ вся нСобходимая информация β€” Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ просто ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² наш Ρ€Π°Π·Π΄Π΅Π» dependencies.

Π’ Maven-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π’ поискС Π²Π²Π΅Π΄ΠΈ β€œapache commons io”, ΠΈ Ρ‚Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡˆΡŒ всС доступныС вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ПослС Π²Ρ‹Π±ΠΎΡ€Π° Π½ΡƒΠΆΠ½ΠΎΠΉ, просто скопируй:

и добавь в свой pom.xml.

Π’ΠΈΠ΄Ρ‹ Maven-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²

Π‘Π±ΠΎΡ€ΠΊΠ° Java-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Maven

Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java

ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Intellij IDEA:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven java

Π”ΠΎ запуска package Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ„Π°Π·Ρ‹ validate, compile, test. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ β€” Ρ„Π°Π·Π° clean. Π•Π΅ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ сборкой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π€Π°Π·Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Maven

Π‘Ρ‚Π°Ρ‚ΡŒΡ написана для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° java, Π½ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΈΡ… ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ. Π­Ρ‚ΠΈΠΌ людям ΡƒΠΆΠ΅ извСстно, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ классы, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ public static main(String[] argv), Π½ΠΎ ΠΊΠΎΠ΄ Π±Π΅Π· срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ½ΠΈ Π½Π΅ запускали, Π΄Π° ΠΈ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΊΠΎΠΌΡƒ ΠΈ Π·Π°Ρ‡Π΅ΠΌ это Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ.

Π‘Ρ€Π°Π·Ρƒ скаТу, Ρ‡Ρ‚ΠΎ Java программиста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ· консольки, Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π΅ Π²ΠΎΠ·ΡŒΠΌΡƒΡ‚, ΠΈ это Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ достаточная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ искусству обращСния с систСмами сборки. ΠžΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈ посвящСна ΡΡ‚Π°Ρ‚ΡŒΡ.

Π― ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ сборки минимального HelloWorld. Π’Π°ΠΊΠΆΠ΅ я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ всС тСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ всё, Π±Π΅Π· понимания Ρ‡Π΅Π³ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ нСльзя.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ xml, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния, Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π° пСрСмСнная окруТСния PATH ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ консолью.

Π—Π°Ρ‡Π΅ΠΌ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±Π΅Π· IDE

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ вопрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° β€” ΠΊΠ°ΠΊ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΡƒΠΌΠ΅Π½ΠΈΠ΅ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±Π΅Π· срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Она вСдь установлСна ΠΈ настроСна Ρƒ всСх β€” это ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ программист, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

ΠžΡ‚Π²Π΅Ρ‚ простой β€” для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс β€” ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ рСгулярно ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π²ΠΎΠΎΠ±Ρ‰Π΅ компилируСтся, Π° ΠΏΠΎΡ‚ΠΎΠΌ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² работоспособности ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΎΠ³ΠΎΠ½ΡΡ‚ΡŒ тСсты.

МоТно, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π· Π² 15 ΠΌΠΈΠ½ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ IDE ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ описанныС Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Π½ΠΎ это Π±Π΅Π·ΡƒΠΌΠΈΠ΅, Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ слСдуСт Π΄Π΅Π»Π°Ρ‚ΡŒ автоматичСски.

Π£ΠΌΠ΅Ρ‚ΡŒ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±Π΅Π· срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” суровая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ. ΠΠ°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ суровая, Ρ‡Ρ‚ΠΎ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ сущСствуСт особый класс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ систСмами сборки.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ систСма сборки?

БистСма сборки это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая собираСт Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. На Π²Ρ…ΠΎΠ΄ систСма сборки ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ исходный ΠΊΠΎΠ΄, Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.

Π§Π΅ΠΌ ΠΎΠ½Π° отличаСтся ΠΎΡ‚ компилятора? Если ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ, Ρ‚ΠΎ систСма сборки Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ компилятор ΠΏΡ€ΠΈ своСй Ρ€Π°Π±ΠΎΡ‚Π΅, Π° компилятор ΠΎ сущСствовании систСмы сборки Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°Π΅Ρ‚.

Если Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½ΠΎ, Ρ‚ΠΎ сборка, ΠΏΠΎΠΌΠΈΠΌΠΎ компиляции, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π΅Ρ‰Ρ‘ Ρ†Π΅Π»Ρ‹ΠΉ спСктр Π·Π°Π΄Π°Ρ‡, для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… компилятор Π½Π΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π΅Π½ ΠΎΡ‚ слова совсСм.

НапримСр, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΈΡ… Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ β€” Π·Π°Π΄Π°Ρ‡Π° систСмы сборки. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½ΡƒΠΆΠ½Ρ‹ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΈΡ… Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ β€” Π·Π°Π΄Π°Ρ‡Π° систСмы сборки. Ну ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

И Π΄Π°, Ссли автоматичСская сборка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° настроСна ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚ΠΎ Π½Π΅Ρ‚ Π½ΡƒΠΆΠ΄Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ IDE β€” соврСмСнная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сгСнСрируСт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, достаточно ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅ΠΉ Π³Π΄Π΅ находится конфигурация для систСмы сборки.

БистСм сборки для java ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ счёту 3 β€” ant, maven ΠΈ gradle. ant ΠΎΡ‚ΠΆΠΈΠ²Π°Π΅Ρ‚ свой Π²Π΅ΠΊ, Π½Ρ‹Π½Ρ‡Π΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π»ΠΈΠ±ΠΎ Ρ€Π΅Ρ‚Ρ€ΠΎΠ³Ρ€Π°Π΄Ρ‹, Π»ΠΈΠ±ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΊΡ€ΡƒΡ‚Ρ‹Π΅ Ρ‡ΡƒΠ²Π°ΠΊΠΈ, Ρ‚ΠΈΠΏΠ° Антона КСкса, gradle ΠΏΠΎΠΊΠ° ΡƒΠ΄Π΅Π» хипстСров, Π° Π²ΠΎΡ‚ maven β€” стандарт индустрии. Π£ΠΌΠ΅Ρ‚ΡŒ ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ maven

Maven устанавливаСтся просто ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² Π½ΡƒΠΆΠ½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ β€” Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ инсталлСра Π½Π΅Ρ‚. Как ΠΈ Π² случаС с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для использования достаточно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ maven/bin Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния PATH.

Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли maven находится Π² d:/soft/maven, Ρ‚ΠΎ Π² PATH Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ d:/soft/maven/bin

Π•Ρ‰Ρ‘ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ maven ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ JAVA_HOME, которая ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° JDK. Если JDK находится Π² C:/Program Files/Java/jdk1.8.0_05, Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² JAVA_HOME. Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ bin Π² ΠΊΠΎΠ½Π΅Ρ† Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

ПослС этого ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² консоли

Если получится, Π·Π½Π°Ρ‡ΠΈΡ‚ maven установлСн.

Как ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для maven

Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ maven ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ² с исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ„Π°ΠΉΠ»ΠΎΠ² настроСк ΠΈ всСго Ρ‚Π°ΠΊΠΎΠ³ΠΎ называСтся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. ДирСктория, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ эти Ρ„Π°ΠΉΠ»Ρ‹, называСтся ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ дальшСйшСм я Π±ΡƒΠ΄Ρƒ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ эту Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠ°ΠΊ

Как извСстно, язык программирования java навязываСт программисту структуру Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, которая Π΄ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ располоТСниС Ρ„Π°ΠΉΠ»ΠΎΠ² с классами. НапимСр класс с ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ com.app.HelloWorld Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ com/app/HelloWorld.java ΠΈ Π½ΠΈΠΊΠ°ΠΊ ΠΈΠ½Π°Ρ‡Π΅.

Maven добавляСт ΠΊ этому ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡŽ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ β€” исходный ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ

/src/main/java. Π’ΠΎ Π΅ΡΡ‚ΡŒ класс com.app.HelloWorld maven Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π²

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ этот самый HelloWorld

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ описаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ минимального Ρ„Π°ΠΉΠ»Π° pom.xml Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ. Для прохоТдСния Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ Π΅Π³ΠΎ ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Ссли Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ, ΠΊΠΎΠ΄ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ собСрётся.

Π§Ρ‚ΠΎ Ρ‚ΡƒΡ‚ Π±Ρ‹Π»ΠΎ сущСствСнно Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ ΠΈ Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ? Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π½Π°Π΄ΠΎ Π²ΠΎΡ‚ эти Ρ‚Ρ€ΠΈ строки.

Π­Ρ‚ΠΈ Ρ‚Ρ€ΠΈ строки ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для внСшнСго ΠΌΠΈΡ€Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΎΠ½Π° ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ maven называСтся Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠΌ.

НСпонятноС слово Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ здСсь вмСсто понятного слова ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы сборки ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ собствСнно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π½ΠΎ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠ»ΠΈ Π΅Ρ‰Ρ‘ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ эдакоС. ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² groupId, artifactId ΠΈ version ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°. Об ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ этой ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ программист.

ВСхничСски, значСния этих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ, Π½ΠΎ ΠΏΡ€ΠΈ ΠΈΡ… Π²Ρ‹Π±ΠΎΡ€Π΅ строго рСкомСндуСтся ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ Ρ‚ΠΎΠ½Π°.

groupId

Π’ groupId ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ находится Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Напомню, Ρ‡Ρ‚ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° согласно Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ Ρ‚ΠΎΠ½Π°, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π΅Π±-Π΄ΠΎΠΌΠ΅Π½Π°, Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Π°Π²Ρ‚ΠΎΡ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‡Ρ‚ΠΎ позволяСт Ρ…ΡƒΠ΄ΠΎ-Π±Π΅Π΄Π½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ названия.

artifactId

Π’ artifactId β€” строка с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ это ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ слово, ΠΈΠ½ΠΎΠ³Π΄Π° с раздСлитСлями Π² Π²ΠΈΠ΄Π΅ Ρ‚ΠΈΡ€Π΅. НапримСр hibernate-annotation-wat. artifactId Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… groupId.

version

Ну ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ† version это вСрсия Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°Π΄ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ. ВСрсия ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ†ΠΈΡ„Ρ€Ρ€Ρ‹ ΠΈ Π±ΡƒΠΊΠ²Ρ‹. Π’ΠΈΠΏΠ° 1.0-SNAPSHOT

Как ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° структура Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° соотвСтствуСт ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ, Π° Π΅Π³ΠΎ описаниС присутствуСт Π² Ρ„Π°ΠΉΠ»Π΅ pom.xml, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ консоль, ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² консоли:

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ maven Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° появится дирСктория target, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ скомпилированный ΠΊΠΎΠ΄.

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ java ΠΊΠΎΠ΄ выглядит Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ исходный, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вмСсто Ρ„Π°ΠΉΠ»ΠΎΠ² с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ java Π² дирСкториях, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… названиями ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², находятся Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ class, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ Π½Π΅ исходный ΠΊΠΎΠ΄, Π° ΠΊΠΎΠ΄, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Π΄ΠΆΠ°Π²Π°-машиной.

Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ этот ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скомпилированный ΠΊΠΎΠ΄, Π½ΡƒΠΆΠ½ΠΎ Π² консоли ΠΈΠ· этой ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½Π°Π±Ρ€Π°Ρ‚ΡŒ

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ maven пСрСстанСт ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π²ΡΡΠΊΡƒΡŽ Π΄Ρ€ΡΠ½ΡŒ ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, Π³Π΄Π΅-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠΎΠΉ с надписью BUILD SUCCESS, появится строчка Hello World.

Код ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π», всё ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΡƒΠ΄Π°Ρ‡Π½ΠΎ.

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСмы сборки maven.

Π˜Ρ‚ΠΎΠ³ΠΎ

maven ΠΈΡ‰Π΅Ρ‚ ΠΊΠΎΠ΄ для сборки Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎ сборкС maven Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π²

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы сборки называСтся Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠΌ.

ΠžΡ‚ программиста трСбуСтся Π·Π°Π΄Π°Ρ‚ΡŒ groupId, artifactId ΠΈ version

Π‘Π±ΠΎΡ€ΠΊΠ° осущСствляСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ mvn compile

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ java ΠΊΠΎΠ΄ выглядит Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ исходный ΠΊΠΎΠ΄, Π½ΠΎ вмСсто Ρ„Π°ΠΉΠ»ΠΎΠ² с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ java, Ρ‚Π°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ class.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *