Deskripsi Proyek Model Objek
Salah satu hal yang pertama-tama distandarisasi oleh Maven adalah deskripsi proyek. Sebelum Maven, setiap IDE memiliki file proyeknya sendiri, yang menyimpan informasi tentang proyek dan rakitannya (dan seringkali dalam bentuk biner).
Maven telah menghasilkan standar terbuka berbasis XML, universal, yang menjelaskan apa itu proyek, bagaimana harus dibangun, dan ketergantungan apa yang dimilikinya menggunakan berbagai tag. Deskripsi proyek terdapat dalam satu file, biasanya bernama pom.xml .
Contoh file pom.xml :
<proyek 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>
<versi>2.6</version>
</ketergantungan>
</ketergantungan>
</proyek>
Contoh ini memiliki tiga hal tertulis:
- Informasi tentang versi standar proyek maven berwarna biru.
- Informasi tentang proyek itu sendiri berwarna merah.
- Informasi tentang perpustakaan yang digunakan berwarna hijau.
Mari kita lihat lebih dekat perangkat file pom.
Struktur proyek Maven
Dan segera pertanyaannya adalah: apakah Anda memperhatikan keanehan pada contoh terakhir? Itu tidak berisi informasi tentang kode proyek itu sendiri! Tidak ada kata di mana file java, sumber daya, file properti, html, skrip build, dan sejenisnya disimpan.
Dan jawabannya sederhana - Maven membuat standar desain proyek. Ada beberapa opsi untuk mengatur kode dalam suatu proyek, dan yang paling umum adalah:
Strukturnya sedikit tidak biasa setelah proyek standar IDEA, tetapi untuk itu bersifat universal. 90% proyek yang akan Anda temui dalam hidup Anda akan memiliki struktur folder ini .
Jika Anda membuat proyek Maven (menggunakan IDEA atau menggunakan konsol), maka itu akan mengambil bentuk yang ditentukan. Mari kita lihat bagaimana semuanya bekerja di sini.
Folder src , Anda dapat menebaknya, berisi kode sumber untuk proyek tersebut. Ini memiliki dua subfolder: main dan test .
Folder /src/main/java adalah root untuk semua kelas Java dalam proyek. Jika Anda memiliki kelas com.codegym.Cat, maka itu akan berada di folder /src/main/java /com/codegym /Cat.java . Jika ada sumber daya teks atau biner, mereka harus disimpan di folder /src/main/resources .
Struktur folder /src/test mirip dengan struktur folder /src/main , tetapi berisi tes dan sumber dayanya. Maven sendiri tahu cara menjalankan pengujian yang diperlukan saat membangun proyek, tetapi kami akan membicarakannya di kuliah terpisah.
Ada juga folder /target di project , di mana Maven akan menyimpan proyek setelah dibangun. Karena proyek besar sering kali memiliki skrip build non-trivial, tidak ada yang disimpan di folder ini.
Tujuan kedua folder /target adalah untuk meng-cache hasil pembangunan menengah. Saat membangun proyek besar, Maven hanya dapat membangun kembali bagian yang telah berubah, sehingga mempercepat waktu pembangunan beberapa kali.
Nah, sebagai ceri pada kue - di bagian paling bawah dari proyek ini adalah file pom.xml. Ini berisi semua informasi yang diperlukan tentang proyek, yang akan kita bahas di bawah ini.
Perangkat pom.xml
Pertama-tama, file pom adalah xml, sehingga berisi informasi header dan ruang nama standar. Ini semua tentang standar XML murni, jadi kami tidak akan membicarakannya secara detail. Artinya ini:
<proyek 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">
…
</proyek>
Juga, biasanya baris pertama di dalam tag <project> adalah deskripsi versi standar file pom. Hampir selalu 4.0. Ini juga tidak menarik bagi kami.
Baris pertama yang kami minati terlihat seperti ini:
<groupId>com.sample.app</groupId>
<artifactId>aplikasi baru</artifactId>
<versi>1.0-SNAPSHOT</version>
Agar tidak memahami sekali lagi apa yang kami jelaskan (program, proyek, modul, pustaka, dll.) Dalam standar Maven, ini semua disebut kata artifact . Apa yang tidak dapat Anda tolak dari pencipta Maven adalah kecintaan pada standardisasi.
Tiga tag yang Anda lihat berarti:
- groupId - paket tempat aplikasi berada, dengan penambahan nama domain;
- artifactId – kunci string unik (id proyek);
- versi – versi proyek.
Ketiga parameter ini cukup untuk mendeskripsikan artefak apa pun secara jelas .
Selanjutnya, setelah deskripsi proyek, biasanya ada daftar artefak (perpustakaan) yang digunakan proyek. Ini terlihat seperti ini:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
Dalam contoh ini, kami menambahkan pustaka commons-io dari paket commons-io, versi 2.6, ke proyek kami.
Saat membangun, Maven akan menemukan perpustakaan seperti itu di repositori globalnya dan menambahkannya ke proyek Anda. Dan omong-omong, tidak hanya Maven yang bisa melakukan ini.
Bagaimana IDEA bekerja dengan Maven
Intellij IDEA hebat dalam bekerja dengan Maven. Dia tahu cara membuka proyek semacam itu, membuatnya sendiri, menjalankan berbagai skrip build, dan sangat memahami pustaka yang disertakan.
Ia bahkan memiliki Maven bawaannya sendiri untuk beberapa waktu, tetapi Anda masih harus dapat menginstal dan mengonfigurasinya sendiri, jadi fitur IDEA ini tidak disebutkan sebelumnya. Secara teori, IDEA dapat memiliki konflik antara dua Maven, jadi ada baiknya Anda mengetahui bahwa ada dua.
Cara membuat proyek Maven baru di IDEA:
Klik menu File > Proyek Baru. Pilih item menu Proyek Baru di sebelah kiri .
Mari kita perjelas beberapa poin:
- Nama Proyek;
- Folder untuk proyek;
- Bahasa proyek adalah Java;
- Jenis proyeknya adalah Maven.
Di bagian Pengaturan Lanjutan di bagian bawah, IDEA akan meminta Anda menentukan goupID, artifactID, dan versi proyek baru kami. Data ini selalu dapat dengan mudah diubah nanti. Pilih dari yang disarankan atau masukkan milik Anda:
Selanjutnya, buat proyek secara standar di lokasi yang diperlukan. Hasilnya, kita melihat strukturnya:
Kelas dan paket harus dibuat di folder java, kita sudah membicarakannya. Dan saya pikir Anda dapat dengan mudah menanganinya. Kami siap untuk melanjutkan, tapi mari kita kembali sedikit, ke satu masalah penting yang kita "lewati" sedikit.
GO TO FULL VERSION