JavaRush /Blog Java /Random-MS /Bahagian 4: Asas Maven

Bahagian 4: Asas Maven

Diterbitkan dalam kumpulan
Bahan ini adalah sebahagian daripada siri "Pengenalan kepada Pembangunan Perusahaan". Artikel sebelumnya: Bahagian 4. Asas Maven - 1Maven ialah alat untuk mengurus dan membina projek - pembantu sebenar kepada pengaturcara Java. Ia menjadikan kehidupan lebih mudah untuk pembangun pada semua peringkat kerja: daripada mencipta struktur projek dan menyambungkan perpustakaan yang diperlukan kepada menggunakan produk pada pelayan. Apabila bekerja dengan mana-mana rangka kerja, anda perlu menggunakan Maven. Jadi mari kita lihat fungsi utamanya hari ini dan lihat bagaimana ia harus digunakan.

Langkah demi langkah pemasangan Maven

  1. Mula-mula anda perlu memasang Maven dengan memuat turunnya dari pautan ini .

  2. Seterusnya, anda perlu membongkar arkib yang dimuat turun dan menetapkan pembolehubah persekitaran M2_HOME kepada pautan ke lokasi arkib yang tidak dibungkus. Contohnya, C:\Program Files\maven\

  3. Untuk memastikan semuanya dipasang, tulis pada baris arahan:

    versi mvn

  4. Jika maklumat versi untuk Maven, Java, dsb. dipaparkan, anda sudah bersedia untuk pergi.

  5. Sekarang buka IntelliJIDEA dan buat projek baharu. Dalam tetingkap pertama, pilih Maven:

    Bahagian 4. Asas Maven - 2
  6. Klik Seterusnya dan isikan kotak dialog berikut:

    Bahagian 4. Asas Maven - 3
  7. Seterusnya, buat projek di lokasi yang diperlukan sebagai standard.

    Selepas projek telah dibuat, perhatikan strukturnya:

    Bahagian 4. Asas Maven - 4
Ini ialah struktur standard untuk projek Maven :
  • folder src/main/java mengandungi kelas java;
  • dalam src/main/resources - sumber yang digunakan oleh aplikasi kami (halaman HTML, gambar, helaian gaya, dll.);
  • src/test - untuk ujian.
Juga perhatikan fail yang dipanggil pom.xml . Ini ialah fail utama untuk menguruskan Maven . Keseluruhan penerangan projek terkandung di sini. Belum ada terlalu banyak maklumat di sana, tetapi kami akan menambahnya sekarang.

Pengurusan Ketergantungan dalam Maven

Anda mungkin pernah menjumpai frasa "pengurus pergantungan" atau "pengurus pergantungan". Maven boleh lakukan semuanya. Terima kasih kepada Maven, anda tidak perlu menghabiskan banyak masa mencari pustaka yang diperlukan di Internet, memuat turunnya, dan kemudian menyambungkannya ke projek: cuma tambahkan yang diperlukan pada senarai kebergantungan Maven. Kebergantungan ditulis dalam nod XML kebergantungan. Katakan anda memerlukan pustaka Apache Commons IO dalam projek anda untuk kerja yang dipermudahkan dengan fail. Untuk menambah perpustakaan, tulis lima baris dalam pom.xml:
<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Pom.xml anda kini sepatutnya kelihatan seperti ini:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Selepas ini, benarkan IntelliJ IDEA mengimport kebergantungan (kotak dialog harus muncul di sudut kanan bawah). Kini perpustakaan sedia untuk digunakan:
import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
Semua kebergantungan berikutnya juga harus ditulis di dalam tag <dependencies>. Anda mungkin tertanya-tanya: bagaimana anda mengetahui maklumat yang anda perlu sertakan tentang perpustakaan di dalam tag <dependency>? Semuanya mudah di sini. Dalam kes sedemikian, tiga parameter sentiasa ditentukan: groupId, artifactId dan version. Anda boleh mengetahui parameter ini dalam dua cara:
  1. Di laman web perpustakaan. Jika kami memerlukan Apache Commons IO, pergi ke tapak web rasmi dan pilih tab Maklumat Ketergantungan. Semua maklumat yang diperlukan ada di sini - anda hanya boleh menyalinnya dan menambahnya pada bahagian kebergantungan kami.

  2. Dalam repositori Maven . Masukkan "apache commons io" dalam carian dan anda akan melihat semua versi perpustakaan yang tersedia. Selepas memilih yang anda perlukan, salin sahaja:

    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>

    dan tambah pada pom.xml anda.

Jenis repositori Maven

Perlu disebut semula repositori Maven, kerana kami sebenarnya mempunyai dua daripadanya - luaran (global) dan tempatan, pada komputer anda. Semua perpustakaan yang anda tambahkan pada projek anda disimpan dalam repositori tempatan. Apabila Maven menambah kebergantungan yang diperlukan pada projek, ia mula-mula menyemak repositori tempatan untuk kehadiran perpustakaan sedemikian, dan hanya jika ia tidak menemuinya di sana, ia beralih kepada yang luaran. Seperti yang anda lihat, anda boleh menggunakan Maven untuk menambah kebergantungan, tetapi bukan itu sahaja yang boleh dilakukan.

Membina Projek Java Menggunakan Maven

Ciri ini mungkin kelihatan tidak berguna kepada pemula. Mengapa ini diperlukan jika terdapat IDE? Tetapi tidak! Pertama, pelayan di mana anda perlu membina aplikasi mungkin bukan sahaja tidak mempunyai persekitaran pembangunan, tetapi juga antara muka grafik. Kedua, pada projek besar, Maven mengatasi tugas-tugas memasang projek dengan lebih baik. Oleh itu, janganlah kita menyeksa diri dengan menunggu, tetapi pertimbangkan proses membina aplikasi menggunakan Maven.

Fasa-fasa

Proses membina aplikasi dipanggil kitaran hayat projek Maven, dan ia terdiri daripada fasa. Anda boleh melihatnya dalam IDEA dengan mengklik pada Maven>example>Lifecycle di penjuru kanan sebelah atas: Bahagian 4. Asas Maven - 5Seperti yang anda lihat, terdapat 9 fasa:
  1. bersih - mengalih keluar semua fail yang disusun dari direktori sasaran (tempat di mana artifak siap disimpan);
  2. mengesahkan - menyemak sama ada semua maklumat tersedia untuk membina projek;
  3. compile - fail dengan kod sumber disusun;
  4. ujian - ujian dilancarkan;
  5. pakej - fail yang disusun dibungkus (ke dalam balang, perang, dll. arkib);
  6. sahkan — semakan dilakukan untuk mengesahkan kesediaan fail yang dibungkus;
  7. install - pakej diletakkan dalam repositori tempatan. Kini ia boleh digunakan oleh projek lain sebagai perpustakaan luaran;
  8. tapak - dokumentasi projek dibuat;
  9. deploy - arkib yang dikumpul disalin ke repositori jauh.
Semua fasa dilaksanakan secara berurutan: anda tidak boleh memulakan, katakan, fasa keempat sehingga fasa 1-3 selesai. Terdapat dua cara untuk memulakan fasa:
  • melalui baris arahan:

    pakej mvn

    Bahagian 4. Asas Maven - 6
  • menggunakan Intellij IDEA:

    Bahagian 4. Asas Maven - 7

    Sebelum pakej dilancarkan, fasa pengesahan, penyusunan, dan ujian dilakukan. Pengecualian adalah fasa bersih. Adalah dinasihatkan untuk memanggilnya sebelum setiap projek baharu dibina. Fasa boleh disenaraikan dipisahkan oleh ruang:

    pakej bersih mvn.

Selain itu, setiap fasa mempunyai fasa pra dan pasca: contohnya, pra-kerahan, pasca-kerahan, pra-bersih, pasca-bersih, tetapi ia digunakan agak jarang. Di samping itu, setiap fasa mempunyai matlamat. Matlamat standard disertakan secara lalai, matlamat tambahan ditambahkan oleh pemalam Maven. Kadangkala semasa beberapa fasa anda perlu melaksanakan fungsi tambahan. Terdapat pemalam Maven untuk ini. Senarai pemalam rasmi boleh didapati di laman web Maven . Tetapi ketahui bahawa masih terdapat banyak pemalam tersuai yang boleh didapati pada sumber pihak ketiga. Sudah tentu, jika terdapat keperluan eksotik, anda sentiasa mempunyai peluang untuk menulis pemalam sedemikian sendiri .

Pemalam

Untuk menambah pemalam Maven pada projek, perihalannya, serupa dengan kebergantungan, mesti diletakkan dalam pom.xml dalam teg <build> dan <plugins>. Sebagai contoh, kami memerlukan pemalam untuk menyemak sama ada semua perpustakaan luaran kami menggunakan versi terkini. Selepas mencari sedikit di Internet, anda boleh menemui pemalam ini dengan arahan untuk digunakan. Mari kita tetapkan groupId, artifactId dan versinya. Mari kita tuliskan matlamat yang mesti dia capai dan dalam fasa apa. Dalam kes kami, semakan kebergantungan dalam pom.xml semasa ditetapkan kepada fasa pengesahan. Sekarang "ingatan" kami kelihatan seperti ini:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Kami masih boleh meneruskan kerja projek kami. Tetapi mari cuba menukar versi Apache Commons IO kepada 2.0 dan mula membina projek. Kami mendapat: [ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1] Di sini kami mempunyai ralat binaan yang disebabkan oleh pemalam. Mesej ralat menyatakan bahawa kami menggunakan versi 2.0 apabila 2.6 tersedia. Secara umum, Maven adalah alat yang sangat berguna. Ia mungkin kelihatan sukar untuk digunakan pada mulanya, tetapi berlatih, buat projek anda di bawah Maven, dan selepas beberapa ketika anda akan sangat gembira dengan hasilnya. Artikel ini sengaja meninggalkan banyak butiran tentang Maven - kami menumpukan perhatian kepada perkara penting. Tetapi tiada had untuk kesempurnaan: anda boleh membaca lebih lanjut tentang Maven di tapak web rasmi produk . Bahagian 5. Servlets. Menulis aplikasi web ringkas Bahagian 6. Bekas Servlet Bahagian 7. Memperkenalkan corak MVC (Model-View-Controller) Bahagian 8. Menulis aplikasi spring-boot kecil
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION