5.1 Loyiha bosqichlari ro'yxati
Nihoyat loyihani jamlashga yetib keldik. Va bu yerda sen biroz hayratda qolasiz. Yoki kuchliroq, qanday bo'lsa. Maven loyihani jamlashga yangi yondashuvni qayta ko'rib chiqdi. Va hozir bunga amin bo'lasiz.
Loyihaning barcha jamlanishi bosqichlarga bo'lindi, ularning tavsifini quyidagi jadvalda keltiraman:
| Order | Bosqich | |
|---|---|---|
| 1 | validate | loyiha ma'lumotlari to'g'riligini tekshiradi |
| 2 | compile | manbalarni kompayl qiladi |
| 3 | test | oldingi qadamdagi sinf testlarini o'tkazadi |
| 4 | package | jamlangan sinflarni yangi artefaktga jamlaydi: jar, war, zip, … |
| 5 | verify | artefakt to'g'riligini va sifat talablariga mosligini tekshiradi |
| 6 | install | artefaktni lokal repositoryga qo'yadi |
| 7 | deploy | artefaktni production-server yoki uzoq repositoryga yuklaydi |
Bular aniq ketma-ketlikda bajariladi. Agar sen Maven'ni package komandani bajarishga buyruq bersang, u avval validate, compile, test bosqichlarini bajaradi, so'ngra package.
Aslida bu yerda yangilik hech narsa yo'q, faqatgina sifat nazorati uchun alohida bosqichlar paydo bo'ldi: validate, test, verify. Va buildni deploy (joylashtirish) uchun ikki bosqich – install va deploy.
Ma'lum bir bosqichni boshlash uchun, maven phase komandasini yozish kifoya. Masalan, build uchun maven package komandasini bajarish kerak. Va shunga o'xshash.
Intellij IDEA bu bosqichlar bilan yaxshi ishlay oladi va uning o'ng tarafida bu maqsadlar uchun maxsus menyu bor:
Bu yerda tanish bosqichlardan tashqari, IDEA yana 2 ta komandani ko'rsatadi: clean va site. clean to'liq target papkasini tozalash uchun ishlatiladi, site esa loyiha hujjatlarini yaratishni biladi.
5.2 Loyihani jamlash
Agar sen loyihani kompayl qilishni xohlasang, compile bosqichini ishga tushirishing kerak. Buni komanda satri yordamida mvn compile yoki IDEA interfeysi orqali compile bandiga bosish orqali qilish mumkin.
Shundan so'ng Maven loyihani jamlashni boshlaydi va sen quyidagiga o'xshash jarayon jurnalini ko'rasan:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.742 s
[INFO] Finished at: 2016-09-19T22:41:26+04:00
[INFO] Final Memory: 7M/18M
[INFO] ------------------------------------------------------------------------
Agar nimadir noto'g'ri ketsa, jurnal quyidagini ko'rsatadi:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project demo: Fatal error compiling: invalid target release: 11 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible sliutions, please read the flilowing articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Jurnalda ko'p foydali ma'lumotlar bo'ladi, vaqt o'tishi bilan ularni tushunib va qadrlab o'rganib olasiz.
5.3 Ish sikllari
Hamma maven komandalar uchta guruhga bo'lingan – lifecycles. Ularni hayotiy sikllar deb atashadi, chunki ular build yoki ma'lum hayotiy sikl davomida bajariladigan bosqichlar tartibini belgilaydi, chunki Maven'ning barcha ishlarini build deb bo'lmaydi.
Umuman olganda, hayotiy sikl uchta:
- clean;
- default;
- site.
Ular har biri o'z bosqichlari tartibiga ega. Clean eng qisqa:
- pre-clean;
- clean;
- post-clean.
Ko'rinmas qo'shimcha pre-clean va post-clean bosqichlari qo'shildi, shuning uchun tozalash ssenariysi yanada moslashuvchan bo'lishi mumkin.
Keyin site hayotiy sikli keladi, u, siz bilganingizdek, loyiha documentationini avtomatik generatsiya qilishga mo'ljallangan. U to'rtta bosqichdan iborat:
- pre-site
- site;
- post-site;
- site-deploy.
Standart hayotiy sikllar Maven-plaginlar yordamida qo'shimcha funksionallik bilan to'ldirilishi mumkin. Bu haqda keyinroq gaplashamiz, chunki bu juda qiziqarli mavzu va alohida leksiya loyiq.
Va default ssenariyning eng uzun bosqichlar ro'yxati:
- validate;
- generate-sources;
- process-sources;
- generate-resources;
- process-resources;
- compile;
- process-test-sources;
- process-test-resources;
- test-compile;
- test;
- package;
- install;
- deploy.
Bu yerda siz allaqachon bilganingiz bosqichlar mavjud, ammo yana bir nechta ixtiyoriy bosqich qo'shildi.
Birinchidan, katta loyihalarda mashhur bosqich – generate-sources: masalan, XMLdan Java-kodni generatsiya qilish. Va unga mos process-sources, bu kod bilan nimadur qiladi.
Ikkinchidan, resurslarni generatsiya qilish – generate-resources va unga mos process resources bosqichi. Bu bosqichlarga katta loyihalarda har xil amallarni qo'shganini tez-tez ko'rasiz.
Va nihoyat – testlash. U testlash bosqichini maksimal moslashuvchan qilishga yordam beradigan uchta qo'shimcha ixtiyoriy bosqichga ega: process-test-sources, process-test-resources, test-compile.
GO TO FULL VERSION