CodeGym /Blog Java /rawak /Bahagian 4. Asas Maven
John Squirrels
Tahap
San Francisco

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 pengaturcara Java yang membantu. Ia menjadikan kehidupan lebih mudah untuk pembangun pada setiap peringkat kerja: daripada mencipta struktur projek dan menyambungkan perpustakaan yang diperlukan kepada menggunakan produk pada pelayan. Anda perlu menggunakan Maven apabila bekerja dengan mana-mana rangka kerja. Jadi, hari ini mari kita lihat fungsi utamanya dan lihat cara menggunakannya.

Pemasangan langkah demi langkah Maven

  1. Pertama, kita perlu memasang Maven. Muat turun dari pautan ini .

  2. Seterusnya, nyahzip arkib yang dimuat turun dan tetapkan pembolehubah persekitaran M2_HOME ke lokasi arkib yang dinyahzip. Contohnya, C:\\Program Files\\maven\\

  3. Untuk memastikan semuanya dipasang, laksanakan yang berikut pada baris arahan:

    mvn -versi

  4. Jika maklumat versi untuk Maven, Java, dll. dipaparkan, maka semuanya sedia untuk digunakan.

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

    Bahagian 4. Asas Maven - 2
  6. Klik "Seterusnya" dan isi tetingkap yang muncul:

    Bahagian 4. Asas Maven - 3
  7. Kemudian, seperti biasa, buat projek di mana sahaja anda mahu.

    Selepas projek dibuat, perhatikan strukturnya:

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

Menguruskan tanggungan dalam Maven

Anda mungkin terjumpa frasa "pengurus pergantungan". Maven tahu cara menguruskan tanggungan. Terima kasih kepada Maven, anda tidak perlu menghabiskan banyak masa mencari pustaka yang diperlukan di Internet, memuat turunnya dan kemudian menyambungkannya ke projek anda. Sebaliknya, anda hanya menambah perpustakaan yang diperlukan pada senarai kebergantungan dalam Maven.

Kebergantungan ditentukan dalam nod kebergantungan fail pom.xml

Katakan anda memerlukan perpustakaan Apache Commons IO dalam projek anda untuk memudahkan kerja dengan fail. Untuk menambah perpustakaan, kami menulis lima baris dalam pom.xml:

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Sekarang fail pom.xml anda 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 itu, benarkan IntelliJ IDEA mengimport kebergantungan (dialog akan 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 mesti ditulis di dalam <dependencies>teg. Anda mungkin tertanya-tanya bagaimana untuk mengetahui maklumat tentang perpustakaan yang perlu anda nyatakan di dalam <dependency>teg. Itu mudah. Tiga parameter sentiasa perlu ditetapkan: "groupId", "artifactId" dan "version". Terdapat dua cara untuk menentukan parameter ini:
  1. Di laman web perpustakaan. Jika kami memerlukan perpustakaan Apache Commons IO, kami pergi ke tapak web rasmi dan pilih tab "Maklumat Kebergantungan". Semua maklumat yang diperlukan ada di sini — anda boleh menyalinnya dan menambahkannya pada <dependencies>nod.

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

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

    dan tambahkannya pada pom.xml anda.

Jenis repositori Maven

Adalah berfaedah bagi kami untuk menyebut repositori Maven sekali lagi, kerana kami sebenarnya mempunyai dua daripadanya: repositori jauh (pusat) dan repositori 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 sama ada perpustakaan sudah wujud dalam repositori tempatan. Ia mengakses repositori jauh hanya jika ia tidak menemui perpustakaan secara tempatan. Seperti yang anda lihat, anda boleh menggunakan Maven untuk menambah kebergantungan, tetapi ini bukan semua yang boleh dilakukan.

Membina projek Java menggunakan Maven

Keupayaan ini mungkin kelihatan tidak berguna kepada pemula. Mengapa kita memerlukan ini jika kita mempunyai IDE? Biar saya jelaskan. Pertama, pelayan tempat anda perlu membina aplikasi anda mungkin tidak mempunyai persekitaran pembangunan mahupun antara muka grafik. Kedua, pada projek besar, Maven melakukan kerja yang lebih baik untuk membina projek itu. Jadi tanpa perpisahan lagi, kami akan mempertimbangkan proses membina aplikasi menggunakan Maven.

Fasa-fasa

Proses membina aplikasi dikenali sebagai kitaran hayat projek Maven, dan ia terdiri daripada fasa. Anda boleh melihatnya dalam IDEA dengan mengklik Maven > contoh > Kitaran hayat di penjuru kanan sebelah atas: Bahagian 4. Asas Maven - 5Seperti yang anda lihat, terdapat 9 fasa:
  1. bersih — mengalih keluar semua fail yang disusun daripada direktori sasaran (tempat di mana artifak siap disimpan)
  2. sahkan — menyemak sama ada semua maklumat yang diperlukan untuk membina projek itu ada
  3. compile — menyusun fail kod sumber
  4. ujian - memulakan ujian
  5. pakej — pakej yang disusun fail (dalam arkib JAR, WAR, dsb.)
  6. sahkan — menyemak sama ada fail yang dibungkus sudah sedia
  7. install — letakkan pakej dalam repositori tempatan. Kini ia boleh digunakan oleh projek lain sebagai perpustakaan luaran
  8. tapak — mencipta dokumentasi projek
  9. deploy — menyalin arkib terbina ke repositori jauh
Semua fasa dilakukan secara berurutan: contohnya, fasa keempat tidak boleh dimulakan 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 fasa pakej bermula, fasa pengesahan, penyusunan, dan ujian dilakukan. Fasa bersih adalah pengecualian. Adalah idea yang baik untuk menjalankan fasa ini sebelum setiap binaan projek. Anda boleh menyenaraikan berbilang fasa, memisahkannya dengan ruang:

    pakej bersih mvn.

Selain itu, setiap fasa mempunyai fasa pra dan pasca: contohnya, pra-kerahan, pasca-kerahan, pra-bersih, pasca-bersih, dsb. tetapi ia digunakan agak jarang. Di samping itu, setiap fasa mempunyai matlamat. Matlamat standard ditetapkan secara lalai. Matlamat tambahan ditambahkan oleh pemalam Maven. Kadangkala semasa fasa, anda mungkin perlu melaksanakan fungsi tambahan. Terdapat pemalam Maven untuk ini. Senarai pemalam rasmi boleh didapati di tapak web Maven . Tetapi anda harus tahu bahawa terdapat banyak pemalam tersuai yang boleh didapati di tapak web pihak ketiga. Dan sudah tentu, jika beberapa keperluan eksotik timbul, anda sentiasa boleh menulis pemalam tersuai sendiri .

Pemalam

Untuk menambah pemalam Maven pada projek, kami perlu menambahkan penerangannya pada fail pom.xml, menggunakan <build>dan <plugins>teg, sama seperti cara kami menambah kebergantungan. Sebagai contoh, katakan kami memerlukan pemalam untuk mengesahkan bahawa kami menggunakan versi terkini semua perpustakaan luaran kami. Selepas sedikit mencari di Internet, anda boleh menemui pemalam ini dan arahan tentang cara menggunakannya. Mari kita tetapkan groupId, artifactId dan versi. Kami akan menunjukkan matlamat yang mesti dipenuhi oleh pemalam dan pada fasa apa. Dalam kes kami, semakan pergantungan dalam pom.xml semasa ditetapkan untuk berlaku semasa fasa pengesahan. Sekarang fail pom.xml 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 boleh terus mengusahakan projek kami. Tetapi mari cuba menukar versi Apache Commons IO kepada 2.0 dan membina projek. Kami akan dapat

[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 kita mempunyai ralat binaan yang dihasilkan oleh pemalam. Mesej ralat menyatakan bahawa kami menggunakan versi 2.0 apabila versi 2.6 tersedia. Pada asasnya, Maven adalah alat yang sangat berguna. Mungkin ia akan kelihatan sukar untuk digunakan pada mulanya, tetapi berlatih! Buat projek anda menggunakan Maven, dan selepas beberapa ketika anda akan sangat gembira dengan hasil akhirnya. Artikel ini sengaja meninggalkan banyak butiran tentang Maven — kami menumpukan pada perkara yang paling penting. Tetapi tiada had untuk penambahbaikan: anda boleh membaca lebih lanjut tentang Maven di tapak web rasminya . Bahagian 5. Servlets dan Java Servlet API. Menulis aplikasi web ringkas Bahagian 6. Bekas Servlet Bahagian 7. Memperkenalkan corak MVC (Model-View-Controller)
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION