Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ dependency Π² maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ

Maven Π² вопросах ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ…

На страницС рассмотрСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вопросы использования Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Maven :

Команда создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ archetype с Ρ†Π΅Π»ΡŒΡŽ (goal) generate. Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ GAV (groupId, artifactId, version) ΠΈ Ρ‚ΠΈΠΏ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° archetypeArtifactId. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ€Π°Π·Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² Ρƒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° maven ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ копирования Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ Π°Ρ€Ρ…ΠΈΡ‚ΠΈΠΏΠΎΠ² Π² Ρ„Π°ΠΉΠ» ΠΈ создания простого maven-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° :

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ„Π°ΠΉΠ»Π° описания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° pom.xml

ΠŸΡ€ΠΈ описании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Ρ„Π°ΠΉΠ»Π΅ pom.xml ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Π³ΠΈ ΠΈ сСкции :

projectэлСмСнт Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня, описаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°;
GAV-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°;
urlΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-страница ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°;
propertiesсСкция свойств ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°;
repositoriesсСкция Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²;
dependenciesсСкция опрСдСлСния зависимостСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°;
buildописаниС сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

НС всС сСкции Ρ„Π°ΠΉΠ»Π° описания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° pom.xml ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

GAV-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° GAV Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ groupId, artifactId, version. ПолноС имя Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° (ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°) прСдставляСт Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ слова, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π·Π½Π°ΠΊΠΎΠΌ двоСточия Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ порядкС groupId:artifactId:packaging:version.

НазначСниС SNAPSHOT

SNAPSHOT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ вСрсии Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Π΅Ρ‘ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° maven провСряСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ вСрсии snapshot Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° Π² ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ послСдний.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия зависимости scope

ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия зависимости scope опрСдСляСт этап ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ эта Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Maven ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 6 областСй :

ИспользованиС Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй

Π’ качСствС Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ собствСнныС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Π΅ Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ ΠΈ локальном рСпозиториях. Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ зависимости ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ pom.xml Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ зависимости – Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ GAV (groupId, artifactId, version) ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости scope ΠΊΠ°ΠΊ system. Π’ Ρ‚Π΅Π³Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ.

Π’Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ зависимости

Π’Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ зависимости ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ нСобходимости Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ указания Π² сСкции dependencies Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для самой зависимости, ΠΈ maven Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΡ… Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ автоматичСски. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° вСрсий ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ «блиТайшСй» зависимости, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ выбираСтся Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‡Π΅Ρ€Π΅Π· список зависимых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Β«mvn depenency:listΒ» ΠΈ Β«mvn dependency:treeΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ вывСсти Π² консоль зависимости Π² Π²ΠΈΠ΄Π΅ списка ΠΈΠ»ΠΈ Π΄Π΅Ρ€Π΅Π²Π° соотвСтствСнно.

Maven ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹

Maven ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² :

ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для :

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ выполнСния maven ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Как Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°

АргумСнты clean ΠΈ package ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„Π°Π·Π°ΠΌΠΈ сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Β«dependency:copy-dependenciesΒ» прСдставляСт собой Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ выполняСт ΠΏΠ»Π°Π³ΠΈΠ½ dependency для Ρ†Π΅Π»ΠΈ copy-dependencies (ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ зависимостСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΏΠΎΠ΄Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ target/dependency).

Maven сначала Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Ρ„Π°Π·Ρƒ очистки clean, послС этого Π±ΡƒΠ΄ΡƒΡ‚ скопированы зависимости «dependency:copy-dependencies», ΠΈ Π² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ выполнится сборка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ВСстированиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Для выполнСния JUnit тСстов ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «mvn test». Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ тСст Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ [-Dtest=package.test-class] ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ тСсту, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ :

Для запуска сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ очисткой ΠΏΠΎΠ΄Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ «target» Π±Π΅Π· выполнСния тСстов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ :

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ : ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΠ² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстов Π² Ρ„Π°ΠΉΠ»Π΅ pom.xml, нСльзя Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ тСсты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Maven.

Maven Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

Под Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ (repository) понимаСтся, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, внСшниС Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… собрано ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных ΠΈ вострСбованных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΈ локальноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ($\.m2\repository), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранятся ΠΊΠΎΠΏΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ€Π°Π½Π΅Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ΠšΡ€ΠΎΠΌΠ΅ этого, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² самом maven-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ внСшниС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² сСкции :

ΠŸΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ pom.xml

ΠŸΡ€ΠΈ описании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Ρ„Π°ΠΉΠ»Π΅ pom.xml ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСфиксов «project.» ΠΈΠ»ΠΈ «pom.» НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ элСмСнты :

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

Maven. Π§Π°ΡΡ‚ΡŒ 2 – Dependency

Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ я Π²Π°ΠΌ ΠΏΠΎΠΊΠ°ΠΆΡƒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ силу Maven, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈ ΠΏΡ€ΠΈ этом Π½Π΅ потрСбуСтся ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ‡Π»Π΅Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ.
И Ρ‚Π°ΠΊ Π½Π°Ρ‡Π½Π΅ΠΌ с Ρ‚ΠΎΠ³ΠΎ, Π·Π°Ρ‡Π΅ΠΌ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Maven? Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Maven. Π§Π°ΡΡ‚ΡŒ 1 – Знакомство ΠΈ настройка ΠΌΡ‹ ΡƒΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ Ρ‡Ρ‚ΠΎ это ΠΈ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ.

Π’ΡƒΡ‚ я Ρ…ΠΎΡ‡Ρƒ Π²Π°ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ инструмСнт, Π° ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ Π΅Π³ΠΎ использованиС Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ JUnit тСстирования.

Π¨Π°Π³ 1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Maven ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ЗапускаСм Π½Π°ΡˆΡƒ всСм Π»ΡŽΠ±ΠΈΠΌΡƒΡŽ Intellij IDEA ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ File->Create New Project

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ dependency Π² maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ dependency Π² maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ dependency Π² maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ dependency Π² maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π€ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ dependency Π² maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ

Π¨Π°Π³ 2.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ» pom.xml.

И Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ:

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого Ρ„Π°ΠΉΠ»Π° ΠΈ осущСствляСтся настройка сборки вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² *.jar Ρ„Π°ΠΉΠ», для этого Π²Π°ΠΌ достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ это Π² pom.xml. Как ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² jar Ρ„Π°ΠΉΠ» Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΡƒΡ‚.

Π­Ρ‚ΠΎ Ρ„Π°ΠΉΠ» ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ default (ΠΏΠΎΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) структуру.

Π¨Π°Π³ 3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Dependency

Π§Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ dependency ΠΈ для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹?

Dependency – это зависимости ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π° Ссли Ρ‚ΠΎΡ‡Π½Π΅ΠΉ, Ρ‚ΠΎ это ΠΈ Π΅ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.

Рассмотрим Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΠΌ шаблонС:

Π’ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я продСмонстрировал ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ JUnit 4.11 ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° эта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° упакуСтся Π² ΠΌΠΎΠΉ *.jar ΠΈΠ»ΠΈ *.war Π°Ρ€Ρ…ΠΈΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π² Π½Π°ΡˆΠΈΡ… классах ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ JUnit.

– Ρ‚ΡƒΡ‚ ΠΌΡ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌ список dependency (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅;

– Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ;

– ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ;

Π¨Π°Π³ 4. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Бтандартная структура ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²:

Бтандартная структура ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² β€” ΠΎΠ΄Π½Π° ΠΈΠ· Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ этого ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π΅Ρ‘ придСрТиваСтся, ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, Ρ‡Ρ‚ΠΎ сильно ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ pom.xml.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ структура ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ваТнСйшиС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ.

ΠšΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

– pom.xml ΠΈ всС дальнСйшиС ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ;

– src: всС исходныС Ρ„Π°ΠΉΠ»Ρ‹;

src/main : исходныС Ρ„Π°ΠΉΠ»Ρ‹ собствСнно для ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°;

src/main/java : Java-исходный тСкст;

src/main/resources : Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ компиляции ΠΈΠ»ΠΈ исполнСнии, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Properties-Ρ„Π°ΠΉΠ»Ρ‹;

src/test : исходныС Ρ„Π°ΠΉΠ»Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ автоматичСского тСстирования;

src/test/java : JUnit-тСст-задания для автоматичСского тСстирования;

target : всС создаваСмыС Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ МавСна Ρ„Π°ΠΉΠ»Ρ‹;

target/classes : ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Java-классы.

Π¨Π°Π³ 5. Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»

Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” это список ΠΏΠΎΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°Π·, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ порядок дСйствий ΠΏΡ€ΠΈ Π΅Π³ΠΎ построСнии.

Maven ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»:

1) archetype – созданиС Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Π° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° рСсурсов. На этой Ρ„Π°Π·Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ ΠΈ, ΠΏΡ€ΠΈ нСобходимости, ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° зависимости;

2) compile – компиляция;

3) ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСстовых рСсурсов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” скачиваСтся ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° JUnit-ΠΏΠ°ΠΊΠ΅Ρ‚);

4) компиляция тСстов (Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ классы Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ);

5) test – тСстированиС;

6) package – ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ создании JAR– ΠΈΠ»ΠΈ WAR-Ρ„Π°ΠΉΠ»Π°);

7) install – инсталляция ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² локальном Maven-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ (Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ доступСн ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²);

8) deploy – инсталляция Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Maven-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ (Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° доступна ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌΡƒ ΠΊΡ€ΡƒΠ³Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²).

Maven ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ стандартный ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» для чистки (cleaning) ΠΈ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π΅Π³ΠΎ страницы (site). Если Π±Ρ‹ β€˜clean’ Π±Ρ‹Π»ΠΎ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ подвСргался Π±Ρ‹ чисткС ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ построСнии, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сущСствСнно Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Maven-ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ ΠΈ Maven-Π°Ρ€Ρ…Π΅Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.

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

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

Как с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ maven Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² maven Π½Π΅Ρ‚

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² maven ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅Ρ‚, ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, исходники ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄Π°Π²Π½Ρ‹ΠΌ-Π΄Π°Π²Π½ΠΎ потСряны.

Π’Π°ΠΊΠΆΠ΅ я ΠΎΠΏΠΈΡˆΡƒ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ maven ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚, ΠΏΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Ρƒ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ, ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ своСму ΠΆΠ΅ maven ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ java.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ dependency Π² maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ dependency Π² maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ dependency Π² maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ dependency Π² maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π€ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ dependency Π² maven для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ

Π’ ΠΌΠΎΠ΅ΠΉ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±Ρ‹Π»ΠΎ сказано, Ρ‡Ρ‚ΠΎ maven сам скачаСт всС ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² pom.xml зависимости. А Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΎΠ½ ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Ρ‘Ρ‚? Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС maven скаТСт, Ρ‡Ρ‚ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° ΠΈ ΠΏΡ€Π΅Ρ€Π²Ρ‘Ρ‚ процСсс сборки с ошибкой. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π² этом случаС?

Π­Ρ‚ΠΎΡ‚ вопрос, Π½Π° самом Π΄Π΅Π»Π΅, распадаСтся Π½Π° нСсколько вопросов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Π΄ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ. Π’Ρ‹Π±ΠΎΡ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΆΠ΅ опрСдСляСтся Ρ‚Π΅ΠΌ, Π³Π΄Π΅ эта Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ.

Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ мСстС, ΠΎ сущСствовании ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ maven Π½Π΅ Π·Π½Π°Π΅Ρ‚. Π•Ρ‰Ρ‘ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ jar Ρ„Π°ΠΉΠ»Π° Ρƒ вас Π½Π° Ρ€ΡƒΠΊΠ°Ρ… ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π² Π²ΠΈΠ΄Π΅ исходного ΠΊΠΎΠ΄Π°, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ maven ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Об этих Ρ‚Ρ€Ρ‘Ρ… случаях ΠΌΡ‹ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ.

Но сначала Π½Π°Π΄ΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ вопрос.

ΠžΡ‚ΠΊΡƒΠ΄Π° maven ΠΊΠ°Ρ‡Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

На просторах ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π΅ΡΡ‚ΡŒ сСрвСр, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹Π»ΠΎΠΆΠ΅Π½Ρ‹ java Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π­Ρ‚ΠΎΡ‚ сСрвСр называСтся Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ, Π° ΠΏΠΎ-русски β€” Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ. Π­Ρ‚ΠΎ Π½Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ абстрактный, Π° Π²ΠΏΠΎΠ»Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ рСсурс, адрСс ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°ΡˆΠΈΡ‚ Π² Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹Π΅ настройки maven. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½ называСтся Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ИмСнно Ρ‚Π°ΠΌ maven Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ зависимости ΠΈΠ· pom.xml.

Как Π±Ρ‹Ρ‚ΡŒ, Ссли Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅Ρ‚ Π² ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, самая частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Ссли Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² этом ΡƒΠΌΠΎΠ»Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π΅Ρ‚ ΠΈΠ»ΠΈ Π² случаС, Ссли этот Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ осущСствляСтся сборка, нСдоступСн, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ сообраТСниям бСзопасности.

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

Как ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ maven ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Π³Π΄Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ maven, Ρ‡Ρ‚ΠΎ зависимости Π½Π°Π΄ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡƒΠΌΠΎΠ»Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, сущСствуСт ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ адрСс для поиска.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Spring, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ послСдниС вСрсии этого сСмСйства Π±ΠΈΠ±ΠΈΠ»ΠΈΠΎΡ‚Π΅ΠΊ. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядит Π²Π½ΡƒΡ‚Ρ€ΠΈ pom.xml

Π’Π΅ΠΏΠ΅Ρ€ΡŒ maven, ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π½Π°ΠΉΠ΄Ρ‘Ρ‚ зависимости Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈΠ»ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½Ρ‹ΠΉ нСдоступСн β€” Π½Π΅ Π·Π°ΠΏΠ°Π½ΠΈΠΊΡƒΠ΅Ρ‚, Π° ΠΏΠΎΠΈΡ‰Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ, Ссли всё ΠΈΠ΄Ρ‘Ρ‚ ΠΏΠΎ ΠΏΠ»Π°Π½Ρƒ, Π½Π°ΠΉΠ΄Ρ‘Ρ‚ Π΅Ρ‘ Ρ‚Π°ΠΌ. Π’ΡƒΡ‚ слСдуСт ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована Π² качСствС зависимости, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли сама являСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ, Ρ‚ΠΎ ΠΊΠ»Π°ΡΡ‚ΡŒ Ρ‚Π΅Π³ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² pom.xml β€” Π½Π΅ Π»ΡƒΡ‡ΡˆΠ°Ρ идСя. ОбъяснСниС Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Ρ‚Π°ΠΊ, Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π½ΠΎ с Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Ρ‚ΡƒΡ‚.

Но Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² рСпозиториях Π½Π΅Ρ‚. НапримСр, Ссли это Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° для MSSQL, ΠΈΠ»ΠΈ Ссли это проприСтарная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»ΠΈ Π·Π° большиС дСньги.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² рСпозиториях Π½Π΅Ρ‚

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами. НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ свой Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² локальной сСти, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ (Π° ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π°ΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ), ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Ρ‚ΡƒΠ΄Π°, ΠΈ Ρ‚Π΅ΠΌ самым свСсти Π·Π°Π΄Π°Ρ‡Ρƒ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ.

Но, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Π°ΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ прямо Π² систСмС контроля вСрсий. Π’ΠΎΠ³Π΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ доступна ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ всСгда ΠΈ Π½Π° любой машинС, Π° шаг ΠΏΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΌΠ°Π½ΡƒΠ°Π».

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… кСйсов Ρƒ maven Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ. Волько Ρ‡Ρ‚ΠΎ ΠΌΡ‹ выяснили, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ maven ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ ΡƒΠΌΠΎΠ»Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ. Π’Π°ΠΊ Π²ΠΎΡ‚, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. МоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² локальной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ ΠΏΡ€ΠΎΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ maven ΠΈΡΠΊΠ°Ρ‚ΡŒ зависимости Π΅Ρ‰Ρ‘ ΠΈ Ρ‚Π°ΠΌ.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

Для этого, ΠΊΠ°ΠΊ сказано Π²Ρ‹ΡˆΠ΅, Ρƒ maven Π΅ΡΡ‚ΡŒ ΡˆΡ‚Π°Ρ‚Π½ΠΎΠ΅ срСдство.

Допустим Ρƒ нас Π΅ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая находится Π² jar Ρ„Π°ΠΉΠ»Π΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ hello-world-library-1.0-SNAPSHOT.jar. О Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π½Π°ΠΌ извСстно, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ класс HelloWorld, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ say, ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‰ΠΈΠΉ Π² консоли, ΠΊΠ°ΠΊ нСслоТно Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Hello World.

ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ lib, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ наш Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. Для этого достаточно Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Windows, Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ \ Π½Π° ^, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ

Или ΠΌΠΎΠΆΠ½ΠΎ просто ΡƒΠ±Ρ€Π°Ρ‚ΡŒ \ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΎΠ΄Π½Ρƒ строчку.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΈ для любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°, для Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ groupId, artifactId ΠΈ version. ΠœΡ‹ ΠΏΠΎΡ‚ΠΎΠΌ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ ΠΈΡ… Π² pom.xml, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ.

Π’Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ создаст ΠΊΠΎΠΌΠ°Π½Π΄Π°, находится ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, для использования ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ maven, Π³Π΄Π΅ ΠΎΠ½ находится. ВсС свСдСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΌ Π½Π°ΠΉΡ‚ΠΈ, содСрТатся нСпосрСдствСнно Π² структурС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ свСТСсозданного рСпозитория. Для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ использования рСпозитория, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…, ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ deploy-file Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅ Π½Π°Π΄ΠΎ.

Π”Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ сущСствуСт, ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Π³Π΄Π΅ ΠΎΠ½ находится, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΆΠ΅ описанным способом, ΠΏΡ€Π°Π²Π΄Π°, с ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΎΠΉ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡΡ‚ΡƒΡŽ строку

Π’ΡƒΡ‚ сказано, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π°Π΄ΠΎ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ встроСнная пСрСмСнная maven project.basedir.

Класс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост, Π½ΠΎ для порядка ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ Π΅Π³ΠΎ ΠΊΠΎΠ΄.

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² pom.xml Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ lib Π½Π°Π΄ΠΎ Π·Π°ΠΊΠΎΠΌΠΈΡ‚ΠΈΡ‚ΡŒ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ доступна ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π²ΠΎΠΎΠ±Ρ‰Π΅ всСгда.

Однако слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π΅.

НуТно ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ jar Ρ„Π°ΠΉΠ»Π°

Maven воспринимаСт Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΊΠ°ΠΊ внСшниС, поэтому, Ссли Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ вСрсии, Ρ‚ΠΎ maven Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Π²Π΅Ρ€ΡΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ lib, Π° Ρ‚Ρƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π·Π°ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π» Π½Π° локальной машинС. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС это Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ‹Π³Ρ€Π°Ρ‚ΡŒ Ρ€ΠΎΠ»ΠΈ ΠΈΠ·-Π·Π° суффикса SNAPSHOT, Π½ΠΎ ΠΎΠ± этом Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ.

Π•ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ распространённый сцСнарий. Π£ вас Π΅ΡΡ‚ΡŒ своя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ сами собираСтС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ maven ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ maven ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свою java Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, достаточно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ класс с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ public. И ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот класс Π² ΠΊΠΎΠ΄Π΅, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.

Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, класс.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ maven ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ этот класс.

Как ΠΌΡ‹ ΠΏΠΎΠΌΠ½ΠΈΠΌ, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния maven, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° β€” это просто Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚, поэтому ΠΏΠΎΠΌΠ½ΠΈΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎ.

Π˜Ρ‚Π°ΠΊ, Ρƒ нас Π΅ΡΡ‚ΡŒ класс со статичСским ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ описаниС Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° для maven. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ jar Ρ„Π°ΠΉΠ».

ΠŸΡ€ΠΎΡΡ‚ΠΎ напишСм Π² консоли:

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠ²Π΅ΠΆΠ΅ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊ своСму maven ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Π½ΡƒΠΆΠ½ΠΎ вмСсто package Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ install.

Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСнСния Π² ΠΊΠΎΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ.

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Hello world. ΠœΡ‹ этот класс ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ.

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ…ΡƒΠΆΠ΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°!

Π§Ρ‚ΠΎ Ссли ваша Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ?

Вопрос, казалось Π±Ρ‹, Π³Π»ΡƒΠΏΡ‹ΠΉ, Π½ΠΎ Π½Π° всякий случай ΠΏΡ€ΠΎΠ²Π΅Π΄Ρ‘ΠΌ экспСримСнт.

Π‘Π΄Π΅Π»Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ с нСпустыми зависимостями.

ΠΈ напишСм для Π½Π΅Ρ‘ ΠΊΠΎΠ΄

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ с нашим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π΅Π³ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ говоря Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ процСсс устроСн Π²Π½ΡƒΡ‚Ρ€ΠΈ, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ всё Ρ€Π°Π²Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.

Команда mvn install собСрёт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ Π΅Ρ‘ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² Ρ‚ΠΎ ΠΆΠ΅ самоС мСсто, Π³Π΄Π΅ Π»Π΅ΠΆΠ°Ρ‚ всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ ΠΊ maven ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, разумССтся, Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… рСпозиториях, сдСланных Π»ΠΈΡ‡Π½ΠΎ Π²Π°ΠΌΠΈ.

ΠŸΠΎΡ‚ΠΎΠΌ, ΠΏΡ€ΠΈ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, maven ΠΏΠΎΠΈΡ‰Π΅Ρ‚ Π΅Ρ‘ Π² локальном Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Π½Π°ΠΉΠ΄Ρ‘Ρ‚ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚.

Π˜Ρ‚ΠΎΠ³ΠΎ

UPD: Π’ коммСнтариях sshikov, igor_suhorukov, jbaruch ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ высказали ΠΌΠ½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ нСльзя Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ вмСстС с исходниками, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ для этого Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для этого инструмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Nexus ΠΈ Artifactory.

Π’ΡƒΡ‚ я ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ согласСн. Когда Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ просто Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚. Но, с ΠΌΠΎΠ΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, Π΅ΡΡ‚ΡŒ случаи, ΠΊΠΎΠ³Π΄Π° ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅. Π― имСю Π² Π²ΠΈΠ΄Ρƒ малСнькиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, созданныС Π² процСссС обучСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ с Ρ‚Π°ΠΊΠΈΠΌΠΈ Π²Π΅Ρ‰Π°ΠΌΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π΅Π»ΠΎ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ, ΠΈ случаи, ΠΊΠΎΠ³Π΄Π° доступа ΠΊ инфраструктурС Π½Π΅Ρ‚, Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² сборку Π½ΡƒΠΆΠ½ΠΎ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 10 ΠΌΠΈΠ½ΡƒΡ‚. НуТно Π±Ρ‹Π»ΠΎ с самого Π½Π°Ρ‡Π°Π»Π° ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Ρ‡ΡŒ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ Ρ‚Π°ΠΊΠΈΡ… кСйсах.

Π”Π°, Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² систСмС контроля вСрсий β€” Ρ…Π°ΠΊ. Но, ΠΊΠ°ΠΊ ΠΈ всС Ρ…Π°ΠΊΠΈ, это такая ΡˆΡ‚ΡƒΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΎ возмоТности осущСствлСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π±Ρ‹ Π·Π½Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°, прСдлоТСнная Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅, Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ…ΠΎΡ€ΠΎΡˆΠΎ раскрыты Π² коммСнтариях. Π’Π°ΠΊΠΆΠ΅ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Nexus, спасибо jbaruch Π·Π° ссылку. Π‘Ρ‚Π°Ρ‚ΡŒΡ интСрСсная, Ссли Π½Π΅ Π½Π°ΠΉΠ΄Ρƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π½Π° Π₯Π°Π±Ρ€Π΅, ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ пСрСвСсти Π΅Π΅ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ постом.

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

Как с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 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.

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

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

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