JavaRush /Kurslar /All lectures for AZ purposes /Maven quraşdırılması

Maven quraşdırılması

All lectures for AZ purposes
Səviyyə , Dərs
Mövcuddur

1.1 Böyük proqramlar

Artıq kiçik proqramlar yazmağı öyrəndik, indi isə böyük proqramlar yazmağı öyrənəcəyik. Məlumdur ki, proqram nə qədər böyük və mürəkkəb olsa, onun inkişafına bir o qədər pul ödəyirlər:) Kiçik bir tarixçədən başlayaq...

Proqramların ölçüsü artdıqca, inkişafçılar iki yeni şəraitlə üzləşdilər:

  • Bir proqram üzərində çox sayda insan işləyir.
  • Proqramın bütün kodunu bilən bir insan yoxdur.

Çox vaxt belə hallar yaranırdı ki, proqramçı proqramın bir yerində səhvi düzəldirdi və bununla bir başqa yeri pozurdu. Release sənədlərində belə bir zarafat da yaranmışdı:

Dəyişikliklər siyahısı:

  • Köhnə səhvləri düzəltdik :)
  • Yeni səhvlər əlavə etdik :(

O zaman bu problemləri həll etmək üçün iki yanaşma düşünüldü: texniki və idarəetmə.

Texniki yanaşma proqramların hissələrə bölünməsindən ibarət idi: kitabxanalar və modullar. Hər belə modul kiçik bir tikinti bloku idi ki, daha sonra böyük layihələr qurulurdu. Kitabxanalar isə - müxtəlif proqramlarda istifadə edilə bilən universal komponentlər idi.

İdarəetmə yanaşması daha maraqlı idi – onlar bir layihə/kitabxana üzərində işləyə biləcək insanların sayını məhdudlaşdırırdılar. Empirik olaraq belə bir qayda tutmuşdular: komanda o qədər böyük olmalıdır ki, ona iki pizza ilə doydura biləsiniz. Adətən bu, layihədə 8-dən çox şəxs iştirak edirsə, onun iki layihəyə bölünməsinin lazım olduğunu göstərir.

Java inkişaf edənlər arasında hər hadisə üçün kitabxanalar yazmaq və onları ümumi istifadəyə vermək populyar oldu. Beləliklə, Java proqramçıları təkrarən eyni kodu yazmamalı (çox vaxt bu kod xam idi və səhvlər ehtiva edirdi), hazır və sınaqdan keçmiş həllərdən istifadə edə bilirdilər.

Əlavə stimul isə Java dilinin server həllərinin yazılmasında (backend-də işləyirdi) böyük populyarlıq qazanması oldu. Əvvəla, server proqram təminatı üçün daha yüksək etibarlılıq tələbləri var idi, və zamanla sınaqdan keçmiş kitabxanaların istifadəsi həmişə öz kodunu yazmaqdan üstün idi.

İkincisi, serverlərdə kodun ölçüsünə dair demək olar ki, heç bir məhdudiyyət yoxdur. Mobil tətbiq inkişafçısı onu 10 megabayta yerləşdirməyə çalışır, masaüstü tətbiq isə 100 megabaytda. Ancaq Java üzrə backend inkişafçısı layihəyə bir neçə yüz kitabxananı daxil edə bilər və heç kim ona heç nə deməz :)

Bu, zarafat deyil. Bir neçə onlarla moduldan və bir neçə yüz kitabxanadan ibarət backend layihə ilə asanlıqla qarşılaşa bilərsiniz. Ancaq belə layihələrin qurulma ssenarilərini təsvir etmək (və dəyişdirmək!) olduqca çətin oldu.

Və burada Maven ortaya çıxdı.

1.2 Maven ilə tanışlıq

Maven – layihələrin qurulmasını idarə etmək üçün xüsusi bir "framework"dir. O, 3 şeyi standartlaşdırır:
  • Layihənin təsviri;
  • Layihələrin qurulma ssenariləri;
  • Kitabxanalar arasındakı asılılıqlar.

Maven'dən əvvəl Ant var idi, və ardıcılı isə Gradledir. Ancaq məhz Maven bu üç standartı mükəmməlləşdirdi və onların qarşılıqlı əlaqəsini tənzimlədi. Məhz o, Java icmasının işini yeni səviyyəyə çıxardı. Gəlin ona daha diqqətli baxaq.

Maven’ə

Texniki olaraq Maven - layihələrin qurulma prosesini idarə etmək üçün xüsusi bir proqram/xidmət edir. Onu sadəcə arxiv şəklində yükləmək və istənilən qovluğa açmaq olar. Bunun üçün xüsusi quraşdırıcı lazım deyil.

Onun qrafik interfeysi yoxdur – bütün əmrləri ona konsoldan verirlər. Onunla daha rahat işləmək üçün, öz əməliyyat sisteminizdə xüsusi ətraf dəyişənlərini (environment variables) təyin etmək tövsiyə olunur.

Həmçinin Maven-də xüsusi bir repozitoriya (qovluq/qovluq), layihələrin qurulmasında istifadə olunan kitabxanaları saxladığı yerdir. Diskdə hər hansı bir qovluğu seçib onu retezitoriya olaraq təyin etmək lazım gələcək.

Ayrıca maraqlı olan qlobal Maven retezitoriyasının olmasıdır, amma bu haqda bir az sonra danışacağıq.

1.3 Maven yükləmə və quraşdırma

Maven-in rəsmi saytı maven.apache.org-dur. Layihə haqqında çox sayda sənədlər var, belə ki, əgər çətinliklər yaranarsa və ya əlavə suallar varsa – utanmadan gir.

Downloads səhifəsində (https://maven.apache.org/download.cgi) apache-maven-3.8.5-bin.zip ilə maven arxivini yükləyə bilərsiniz. Açılmış arxiv təxminən 10 MB yer tutacaq, ancaq yerli maven retezitoriyası üçün bir neçə yüz megabayt yaddaşa ehtiyac olacaq.

Maven Java-da yazılıb və ən azı 7-ci versiya JRE tələb edir, həmçinin JAVA_HOME kimi ətraf dəyişənlərinin təyin edilməsini tələb edir.

Kompüterdə Maven üçün bir qovluq yaradın, məsələn, d:\devtools, və açılmış Maven arxivini ora yerləşdirin. Nəticədə əsas binary faylların yerləşəcəyi d:\devtools\maven\bin tipli bir qovluq olmalıdır.

1.4 Ətraf dəyişənlər

Bundan sonra açılmış arxivin bin qovluğu yolunu mühit dəyişənlərində PATH-ə əlavə etmək lazımdır.

Windows 10-da mühit dəyişənlərini (environment variable) təyin etmək üçün, İdarə Paneli — Sistem — Əlavə sistem parametrləri bölməsinə keçmək lazımdır. Sonra "Ətraf dəyişənlər"i klikləyin, PATH tapın və "Dəyişdir" seçin, daha sonra d:\devtools\maven\bin yolunu sıranın sonuna əlavə edin. Diqqət yetirin ki, yol mütləq bin qovluğuna getməlidir.

Unix əsasında olan əməliyyat sistemlərində mühit dəyişənini aşağıda göstərilən konsol əmri ilə əlavə edə bilərsiniz:


export PATH=/opt/apache-maven-3.8.5/bin:$PATH

Əgər hər şeyi düzgün etmisinizsə, konsolda "mvn -v" əmrlərini yığmaq lazımdır. Cavab olaraq, belə bir şey görəcəksiniz:


C:\Users\Zapp>mvn -v
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 15:51:28+0200)
Maven home: T:\apache-maven-3.0.5\bin\..
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_65\jre
Default locale: en_US, platform encoding: Cp1251
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"

1.5 Yerli Maven Repozitoriyası

Həmçinin, proyekləri qurmaq üçün istifadə ediləcək jar kitabxanaların saxlayacağı xüsusi bir qovluq təyin edə bilərsiniz. Belə bir qovluq – yerli maven retezitoriyası adlanır.

Əgər belə bir qovluq təyin edilməyibsə, Maven onu cari istifadəçinin ev qovluğunda yaradacaq. Mənim üçün bu qovluq: C:\Users\Zapp\.m2

Qovluq " .m2" kimi spesifik bir ada malikdir. Linux istifadəçiləri üçün bu qorxutmur – orada bu müxtəlif "repozitoriyalar" və/və ya hər hansı digər xidməti məlumat saxlama adlarının adlandırılmasına aid olan ümumi bir yanaşmadır.

Vacib! Maven-i sistem qovluqlarına yerləşdirməyin, çünki iş zamanı ona bu qovluqlara yazma hüquqları lazım olacaq ki, bu da antivirusun və ya əməliyyat sisteminin marağını cəlb edə bilər.

Maven 3.5 versiyasına qədər M2_HOME adlı mühit dəyişəninin təyin edilməsini tələb edirdi, amma indi bu tələb deyilmir.

Maven-in konfiqurasiya olunması haqqında daha ətraflı məlumat üçün bu linkə baxa bilərsiniz: https://maven.apache.org/configure.html

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION