Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ 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-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π½ΠΎ это лишь умолчания…

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

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

Как с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ maven ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ

БпроситС ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ, для Ρ‡Π΅Π³ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ΅Π½ Maven β€” 90 ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² поголовья программистов ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ для этого ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΏΡ€Π°Π²Ρ‹.

Если Π² случаС с, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, C++ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊ своСму ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ β€” это ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹ΠΉ шаг, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ услоТнит сборку Π΄ΠΎ Ρ‚Π°ΠΊΠΎΠΉ стСпСни, Ρ‡Ρ‚ΠΎ придётся Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ инструкции ΠΏΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² readme, Ρ‚ΠΎ Π² случаС с Java это дСлаСтся Π»Π΅Π³ΠΊΠΎ ΠΈ Π½Π΅ΠΏΡ€ΠΈΠ½ΡƒΠΆΠ΄Ρ‘Π½Π½ΠΎ β€” Π½Π΅ Π² послСднюю ΠΎΡ‡Π΅Π΄ΡŒ благодаря Maven.

Π₯ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π°Ρ‡Π°Π» ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ java ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΈ хотя ΡƒΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Ρ‚ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven β€” ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π·Π½Π°Π΅Ρ‚ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π° ΠΊΠ°ΠΊ ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ класс

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своём ΠΊΠΎΠ΄Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ класс, ΠΏΠΎΠΌΠΈΠΌΠΎ стандартного, Π½ΡƒΠΆΠ½ΠΎ этот класс ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ этого Ρ„Π°ΠΉΠ»Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄.

БвСТСнаписанный класс Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΌ ΠΆΠ΅, Π³Π΄Π΅ ΠΈ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ классы ΠΈΠ½Π°Ρ‡Π΅ компилятор Π΅Π³ΠΎ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, достаточно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ класс ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ import.

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ присутствущим ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚Ρƒ-Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π½Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ благодарности ΠΊΠ°ΠΏΠΈΡ‚Π°Π½Ρƒ ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ, Π° послС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ класс, написанный ΠΊΠ΅ΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ

ΠžΡ‚Π²Π΅Ρ‚, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ β€” Π½Π°Π΄ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот класс Π² свой ΠΊΠΎΠ΄.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ всС классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ классом, Ρ€Π°Π΄ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ всё Π·Π°Ρ‚Π΅Π²Π°Π»ΠΎΡΡŒ.

ΠšΠ»Π°ΡΡΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ классом, кстати, принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ зависимостями (dependencies), этого класса.

Π£ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ минус. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса Π½Π°Π΄ΠΎ Π²Ρ‹ΠΈΡΠΊΠΈΠ²Π°Ρ‚ΡŒ зависимости, Π° ΠΏΠΎΡ‚ΠΎΠΌ Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊ сСбС. Если ΠΏΠΎΠ·ΠΆΠ΅ Π²ΠΎ всСй этой ΠΊΡƒΡ‡Π΅ ΠΊΠΎΠ΄Π° найдётся ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π±Π°Π³, Ρ‚ΠΎ послС появлСния фикса придётся ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ процСсс Π·Π°Π½ΠΎΠ²ΠΎ.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ класс, написанный ΠΊΠ΅ΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ, Π½Π΅ копируя Π΅Π³ΠΎ Π² свой ΠΊΠΎΠ΄

Π’ΠΎ всСх Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ соврСмСнных языках программирования эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΡƒΠΆΠ΅ Ρ€Π΅ΡˆΠ΅Π½Π°.

ВсСгда ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ компилятору, Ρ‡Ρ‚ΠΎ классы Π½ΡƒΠΆΠ½ΠΎ Π±Ρ€Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π½ΠΎ ΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ…, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… программистом Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ. Π’ Java это дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° classpath.

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Java Ρ‚ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ classpath β€” строго ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ maven, этого Π·Π½Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. Π’ контСкстС нашСй Ρ‚Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ classpath ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСчислСны всС мСста, Π³Π΄Π΅ компилятор Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ классы, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. Если ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· этих классов Π½Π΅Ρ‚ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· этих мСст, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡ΡƒΠΆΠΎΠΉ класс, достаточно ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ с этим классом, ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² classpath Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ скачан этот ΠΊΠΎΠ΄.

По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ способом это Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΉ прогрСсс. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС зависимости Ρ‚ΠΎΠ³ΠΎ СдинствСнного класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ вашСго прилоТСния. Для Π΄ΠΎΠ±Π°Π²ΠΊΠΈ багфиксов ΠΈ всСго Ρ‚Π°ΠΊΠΎΠ³ΠΎ достаточно просто ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΊΠΎΠ΄Π°.

Π’ΠΎΡ‚ собствСнно ΠΌΡ‹ ΠΈ подошли ΠΊ ΠΎΡ‚Π²Π΅Ρ‚Ρƒ Π½Π° вопрос, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ самый ΠΊΠΎΠ΄, ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² classpath. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ класса ΠΈ Π΅Π³ΠΎ зависимостСй, Π° Ρ‚Π°ΠΊΠΆΠ΅ классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ зависимостями Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ класса, Π½ΠΎ содСрТатся Π² ΠΊΠΎΠ΄Π΅.

Π’ случаС с Java, ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ добавляСм Π² classpath, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² classpath ΡƒΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ со скомпилированным ΠΊΠΎΠ΄ΠΎΠΌ.

Π•Ρ‰Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скомпилированный ΠΊΠΎΠ΄ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ zip, ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° с Π°Ρ€Ρ…ΠΈΠ²ΠΎΠΌ Π½Π° jar ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² classpath Ρ„Π°ΠΉΠ» ΡƒΠΆΠ΅ этот Ρ„Π°ΠΉΠ». Π’ контСкстС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Java, jar Ρ„Π°ΠΉΠ» Ρ‚ΠΎΠΆΠ΅ называСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ.

jar Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½ΠΎ ΠΈΡ… использованиС сущСствСнно ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ программистами.

Но, Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° сущСствСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ jar Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚ΠΎΠΆΠ΅ Π½ΠΈΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚.

ΠšΠ»Π°ΡΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π΅ Π² Π½Π΅ΠΉ, Π° Π² ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, которая ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ случаСм, Ρ‚ΠΎΠΆΠ΅ называСтся Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ со всСми Π΅Ρ‘ зависимостями, придётся эти зависимости ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ зависимости придётся ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ.

ΠœΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ зависимости Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, класс ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своём ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, пСрСстанСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ β€” Π½Π°ΠΌ придётся Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΈ отвСтствСнно ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ обновлСнию, Π° Π»ΡƒΡ‡ΡˆΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π±Π΅Π· обновлСния нСльзя ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅.

Как ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ зависимости Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ сломаСт

Π‘Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ говоря β€” Π½ΠΈΠΊΠ°ΠΊ.

НСобходимо, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡŽΠ½ΠΈΡ‚ тСсты. Если ΠΎΠ½ΠΈ Π½Π΅ проходят, Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ сломалось.

Если Π½Π΅Ρ‚, Ρ‚ΠΎ это являСтся слабым ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΌΠΊΠ° отсутствуСт, Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚.

Но ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΡŽΠ½ΠΈΡ‚ тСстам ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ. Π’ этом случаС ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ придётся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Ρ‘ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с зависимостями запустив ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡ‹Π΅ ΡŽΠ½ΠΈΡ‚ тСсты ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ. Π­Ρ‚ΠΎ, ΠΏΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΌΠ½Π΅ тяТСло.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этой Π½ΡƒΠ΄Π½ΠΎΠΉ ΠΈ слоТной Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΌΠ΅ΠΆΠ΄Ρƒ программистами всСго ΠΌΠΈΡ€Π° сущСствуСт нСгласная Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ принято Π²Π΅Ρ€ΡΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΈ создании Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ программист ΠΏΠΈΡˆΠ΅Ρ‚ Π΅Ρ‘ ΠΊΠΎΠ΄, убСТдаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Π° ΠΏΠΎΡ‚ΠΎΠΌ присваиваСт этому ΠΊΠΎΠ΄Ρƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΎΠΌΠ΅Ρ€, ΠΈ послС этого Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ доступным для Π΄Ρ€ΡƒΠ³ΠΈΡ… программистов Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² своём ΠΊΠΎΠ΄Π΅.

Если Π΄Ρ€ΡƒΠ³ΠΈΠ΅ программисты находят Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅ просто ΠΌΠΎΠ»Ρ‡Π° Π΅Ρ‘ исправляСт, Π° послС исправлСния измСняСт ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΈΡ€Ρƒ доступно Π΄Π²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.

Π­Ρ‚ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ вСрсиСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π’Π΅Ρ€ΡΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ программист обновляСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ исправлСнии ошибок, Π½ΠΎ ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€ΠΈ любом ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ эту ΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡŽΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΡ€ΠΈ создании своих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΈΠ»ΠΈ просто ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π½ΠΎ ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии зависимостСй Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π±Π΅Ρ€Ρ‘Ρ‚ Π½Π° сСбя ΠΎΠ΄ΠΈΠ½ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ просто ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠ»ΠΎΠ΄Π°ΠΌΠΈ Π΅Π³ΠΎ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ².

Π­Ρ‚ΠΎ сущСствСнно ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Π½ΠΎ Π½Π΅ устраняСт нСобходимости ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ всС зависимости своСго ΠΊΠΎΠ΄Π° ΠΈ зависимости зависимостСй для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.

ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ процСсс Π½Π°Π΄ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ, ΠΏΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΌΠ½Π΅, ΠΌΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список всСх Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ автоматичСски

И Ρ‚ΡƒΡ‚ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Maven. Он Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π½Π΅Π³Π»Π°ΡΠ½ΡƒΡŽ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ программистами ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Ρ‘ гласной.

Если для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΅ΡΡ‚ΡŒ список зависимостСй, с Ρ‡Ρ‘Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ вСрсиями, Ρ‚ΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ список всСх Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ слоТности Π½Π΅ составляСт.

Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Ρƒ программиста ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π² classpath β€” Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π²Ρ‹ΡΡˆΠ°Ρ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°. НуТно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ описания ΠΈΡ… зависимостСй, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΊΠ°ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ эти зависимости описаны.

Π­Ρ‚ΠΈ вопросы Π² Maven ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π΅ΡˆΠ΅Π½Ρ‹.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊ Maven ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ

Π’ΡƒΡ‚ всё Π² ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ банально. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ Maven, являСтся Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠΌ, Π½ΡƒΠΆΠ½Ρ‹ΠΌ для сборки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠΎΠΌΠ½ΠΈΠΌ, Π΅ΡΡ‚ΡŒ groupId, artifactId ΠΈ version. НуТно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ maven, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ являСтся Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Бписок зависимостСй Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ Ρ‚Π΅Π³ΠΎΠΌ dependencies. КаТдая ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‘Ρ€Π½ΡƒΡ‚Π° Ρ‚Π΅Π³ΠΎΠΌ dependency. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π³Π° dependency Π² Ρ‚Π΅Π³Π°Ρ… groupId, artifactId ΠΈ version Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ значСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π’ΡƒΡ‚ Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ Π½Π°Π΄ΠΎ Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ pom.xml с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π°Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Hello world, Π½ΠΎ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΡƒΠΆΠ΅ Π½ΠΎΠ²Ρ‹ΠΌ прогрСссивным ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π’ΠΎΡ‚ собствСнно ΠΈ всё.

Зависимости ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° maven Π½Π°ΠΉΠ΄Ρ‘Ρ‚ сам, сам составит список всСх Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ зависимости зависимостСй ΠΈ зависимости зависимостСй зависимостСй, сам скачаСт ΠΈΡ… Π½Π° ΠΌΠ°ΡˆΠΈΠ½Ρƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ происходит сборка ΠΈ сам Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΠΈΡ… Π² classpath.

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

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

ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ

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

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ

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

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

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

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

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

3–5 дСкабря, Онлайн, Π‘Π΅cΠΏΠ»Π°Ρ‚Π½ΠΎ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°ΡŽΡ‚ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΎΡ‚ ОБ. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ зависят ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½ΠΎ 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. Для Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изучСния инструмСнта совСтуСм ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° эти ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹.

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

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

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