1.1 Program besar

Kami telah belajar cara menulis program kecil, jadi sekarang kami akan belajar menulis program besar. Seperti yang anda ketahui, lebih besar dan lebih kompleks program, lebih banyak wang dibayar untuk pembangunannya :) Dan mari kita mulakan dengan sedikit latar belakang ...

Apabila program berkembang dalam saiz, pembangun menghadapi dua cabaran baharu:

  • Sebilangan besar orang bekerja pada program yang sama.
  • Tidak ada orang sedemikian yang akan mengetahui keseluruhan kod program.

Selalunya, situasi mula timbul apabila pengaturcara membetulkan pepijat di satu tempat program dan pada masa yang sama memecahkan sesuatu di tempat lain. Dokumentasi keluaran juga mempunyai jenaka ini:

Senarai perubahan:

  • Perbaiki pepijat lama :)
  • Menambah yang baharu :(

Kemudian mereka datang dengan dua pendekatan untuk menyelesaikan masalah ini: teknikal dan pengurusan.

Pendekatan teknikal ialah program dipecahkan kepada beberapa bahagian: perpustakaan dan modul . Setiap modul tersebut adalah batu bata kecil dari mana projek besar kemudiannya dibina. Perpustakaan adalah komponen universal yang boleh digunakan dalam program yang berbeza.

Pendekatan pengurusan adalah lebih menarik - mereka mengehadkan bilangan orang yang boleh bekerja pada satu projek/perpustakaan. Secara empirikal, mereka juga membuat peraturan: pasukan itu harus begitu besar sehingga "ia boleh diberi makan dengan dua piza . " Ini biasanya bermakna jika terdapat lebih daripada 8 orang yang bekerja pada projek , maka projek itu perlu dibahagikan kepada dua projek.

Ia telah menjadi popular dalam komuniti pembangun Java untuk menulis perpustakaan untuk semua keadaan dan menjadikannya tersedia secara umum. Oleh itu, pengaturcara Java tidak dapat menulis kod yang sama sekali lagi (yang selalunya mentah dan mengandungi pepijat), tetapi menggunakan penyelesaian siap sedia dan terbukti .

Insentif tambahan ialah hakikat bahawa bahasa Java mendapat populariti besar apabila menulis penyelesaian bahagian pelayan (ia berfungsi pada bahagian belakang). Pertama, perisian pelayan mempunyai keperluan yang lebih tinggi untuk kebolehpercayaan, dan menggunakan perpustakaan yang diuji masa sentiasa lebih baik daripada menulis kod anda sendiri.

Kedua, pelayan hampir tidak mempunyai had pada saiz kod. Pembangun aplikasi mudah alih cuba memasukkannya ke dalam 10 megabait, aplikasi desktop - menjadi 100 megabait. Dan pembangun backend Java boleh menjejalkan beberapa puluh gigabait perpustakaan ke dalam projek dan tiada siapa yang akan berkata kepadanya :)

By the way, ini bukan gurauan. Anda boleh menemui projek bahagian belakang dengan beberapa dozen modul dan beberapa ratus perpustakaan. Tetapi ia menjadi sangat sukar untuk menerangkan (dan menukar!) membina skrip untuk projek sedemikian.

Dan kemudian Maven muncul.

1.2 Pengenalan kepada Maven

Maven ialah "rangka kerja" khas untuk pengurusan binaan projek. Ia menyeragamkan 3 perkara:
  • Penerangan projek;
  • Skrip binaan projek;
  • Kebergantungan antara perpustakaan.

Pendahulu Maven ialah Ant , dan penggantinya ialah Gradle . Tetapi Mavenlah yang membangunkan dan menyempurnakan tiga piawaian yang disenaraikan, dan juga mengawal interaksi mereka. Dialah yang membawa kerja masyarakat Jawa ke tahap yang baru. Mari kita lihat dengan lebih terperinci.

Maven

Secara teknikal, Maven adalah program / perkhidmatan khas, tujuan utamanya adalah untuk menguruskan proses pembinaan projek. Ia boleh dimuat turun secara mudah sebagai arkib dan dibongkar ke mana-mana direktori. Anda tidak memerlukan pemasang khas untuk ini.

Dia tidak mempunyai antara muka grafik - semua arahan diberikan kepadanya menggunakan konsol . Untuk menjadikannya lebih selesa untuk bekerja dengannya, adalah disyorkan untuk mendaftarkan pembolehubah persekitaran khas dalam OS anda.

Maven juga mempunyai repositori khas (direktori / folder) di mana ia menyimpan perpustakaan yang digunakan semasa membina projek. Anda perlu memilih beberapa folder pada cakera dan menetapkannya sebagai repositori.

Satu lagi perkara yang menarik ialah kehadiran repositori Maven global untuk semua perpustakaan, tetapi kita akan membincangkan perkara ini sedikit kemudian.

1.3 Muat turun dan pasang Maven

Maven mempunyai tapak rasmi maven.apache.org . Terdapat banyak dokumentasi mengenai projek itu, jadi jika anda mempunyai sebarang kesulitan atau soalan tambahan - masuk, jangan malu.

Juga pada halaman muat turun ( https://maven.apache.org/download.cgi ) anda boleh memuat turun arkib maven (apache-maven-3.8.5-bin.zip). Arkib yang dibongkar akan mengambil masa sekitar 10 MB, walaupun repositori maven tempatan akhirnya memerlukan beberapa ratus megabait memori.

Maven ditulis dalam Java dan memerlukan JRE sekurang-kurangnya versi 7, serta pembolehubah persekitaran JAVA_HOME yang ditentukan.

Hanya buat folder untuk Maven pada komputer anda, contohnya, d:\devtools , dan ekstrak arkib dengan Maven ke dalamnya. Akibatnya, anda harus mendapatkan folder seperti d:\devtools\maven\bin , di mana binari utama projek akan ditempatkan.

1.4 Pembolehubah persekitaran

Selepas itu, anda perlu menambah laluan ke folder bin daripada arkib yang tidak dibungkus ke pembolehubah persekitaran PATH.

Untuk menetapkan pembolehubah persekitaran dalam Windows 10, anda perlu pergi ke Panel Kawalan - Sistem - Tetapan sistem lanjutan. Kemudian klik "Pembolehubah Persekitaran", cari PATH dan pilih "Edit", kemudian tambah laluan d:\devtools\maven\bin ke hujung baris. Beri perhatian, laluan mesti menuju tepat ke folder bin.

Pada OS berasaskan Unix, pembolehubah persekitaran boleh ditambah dengan arahan konsol:

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

Jika anda melakukan semuanya dengan betul, maka dalam konsol anda perlu menaip arahan: "mvn -v". Sebagai tindak balas, anda akan melihat sesuatu seperti:

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 Repositori Maven Tempatan

Anda juga boleh menetapkan folder khas di mana Maven akan menyimpan perpustakaan balang yang akan digunakan semasa membina projek. Folder ini dipanggil repositori maven tempatan .

Jika tiada folder sedemikian dinyatakan, Maven akan menciptanya dalam direktori rumah pengguna semasa. Direktori saya ialah: C:\Users\Zapp\.m2

Folder mempunyai nama yang agak khusus ".m2". Walaupun ia tidak menakutkan pengguna Linux - di sana ia adalah pendekatan yang agak biasa untuk menamakan pelbagai "repositori" dan / atau mana-mana penyimpanan maklumat perkhidmatan yang lain.

Penting! Jangan letakkan Maven dalam folder sistem, kerana ia memerlukan kebenaran menulis pada folder ini semasa operasi, yang mungkin tidak menarik minat antivirus atau sistem pengendalian.

Maven sebelum versi 3.5 memerlukan pembolehubah persekitaran yang dipanggil M2_HOME, tetapi ini tidak lagi diperlukan.

Anda boleh membaca lebih lanjut mengenai mengkonfigurasi Maven di pautan: https://maven.apache.org/configure.html