Cara Menggunakan Maven pada Proyek Aplikasi Java
Maven adalah salah satu build tool yang sering digunakan dalam proyek aplikasi Java.
Dengan Maven kita bisa:
- Kompilasi source code dengan mudah;
- Melakukan Testing;
- Menginstal library yang dibutuhkan;
Selain digunakan untuk Java, Maven juga dapat digunakan untuk mengelola project dengan bahasa Kotlin, C#, Ruby, Scala, dan sebagainya.
Maven adalah program berbasis teks yang digunakan pada command line. Namun, bisa juga digunakan dalam IDE.
Karena sebagian besar IDE Java seperti Intellij, Eclipse, dan Netbeans sudah mendukungnya.
Pada kesempatan ini, kita akan belajar cara menggunakan Maven pada proyek Java sampai bisa:
- Mengelola proyek dengan Maven;
- Melakukan build atau kompilasi;
- Menginstal Library yang dibutuhkan;
- Melakukan Testing.
Mari kita mulai…
Instalasi Maven di Linux
Untuk dapat menggunakan Maven, kita harus menginstalnya terlebih dahulu.
Ketik perintah berikut untuk menginstal Maven di Linux:
sudo apt install maven
Setelah itu, coba periksa versi Maven yang terinstal dengan perintah mvn -version
.
Instalasi Maven pada sistem operasi yang lain, silakan cek di sini: https://maven.apache.org/install.html
Membuat Project Java dengan Maven
Ada dua cara yang bisa kita lakukan untuk membuat proyek Java dengan Maven:
- Menggunakan Command Line atau Terminal;
- Menggunakan IDE seperti Netbeans, Eclipse, dan Intellij.
Mari kita coba menggunakan Terminal.
Perintahnya seperti ini:
mvn archetype:generate \
-DgroupId=com.petanikode.app \
-DartifactId=petanikode-app \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
Keterangan:
- Argumen
archetype:generate
artinya kita akan membuat sebuah archetype; - Argumen
-DgroupId=com.petanikode.app
adalah namespace atau nama package dari aplikasi; - Argumen
-DartifactId=petanikode-app
adalah nama direktori dari aplikasi; - Argumen
-DarchetypeArtifactId=maven-archetype-quickstart
artifact atau template yang akan digunakan; - Arugmen
-DinteractiveMode=false
untuk mematikan mode iteraktif.
Tekan Enter, maka project akan segera dibuat.
Setelah itu, coba masuk ke direktori petanikode-app
kemudian lihat struktur direktorinya.
Ini adalah struktur standar direktori project Maven, nanti kita akan bahas lebih dalam.
Berikutnya, kita coba membuat project Maven dengan IDE.
IDE yang akan digunakan adalah Netbeans. Untuk IDE yang lain, silakan disesuaikan saja. Karena caranya hampir sama.
Silakan buka Netbeans, lalu klik New Project.
Pada jendela yang muncul, pilih: Maven->Java Application.
Berikutnya, isi nama project-nya dengan BelajarMaven.
Maka hasilnya:
Tidak ada file Java, karena kita tidak menggunakan DarchetypeArtifactId
seperti
pada command line.
Apa bedanya yang menggunakan DarchetypeArtifactId
dengan yang tidak?
Menggunakan DarchetypeArtifactId
artinya, kita akan menggunakan template yang sudah
ada. Sedangkan yang tidak, berarti kita akan membuat project kosong.
Pada Netbeans, jika ingin menggunakan DarchetypeArtifactId
,
kita bisa memilih Project From Archetype.
Lalu memilih archetype atau template yang ingin digunakan.
Ada banyak archetype yang bisa dipilih. Silakan pilih sesuai kebutuhan.
Struktur Direktori Project Maven
Berikut ini struktur direktori standar yang akan dibuatkan oleh Maven:
Terdapat beberapa file dan direktori yang harus dipahami. Berikut ini penjelasannya:
Nama File atau Direktori | Keterangan |
---|---|
project home | berisi file pom.xml dan semua direktori |
src/main/java | berisi kode program |
src/main/resources | berisi file pendukung untuk project seperti gambar, dokumen, dll. |
src/test/java | berisi kode program untuk melakukan testing |
src/test/resources | berisi file pendukung untuk melakukan testing |
target | berisi file hasil kompilasi seperti .jar dan .class |
pom.xml | berisi konfigurasi project |
Mengenal file pom.xml
POM adalah singkatan dari Project Object Model.
File pom.xml
merupakan file XML yang berisi konfigurasi dari project.
Contoh:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.petanikode.app</groupId>
<artifactId>petanikode-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>petanikode-app</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Bagian penting yang harus kita pahami adalah di bagian <dependencies>
.
Bagian ini tempat kita menentukan library apa yang akan kita gunakan dalam project.
Contohnya: di sini sudah ada library junit
untuk melakukan unit testing.
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
Nanti kita akan coba menambahkan library lain.
Kompilasi Program dengan Maven
Kita dapat melakukan kompilasi aplikasi dengan perintah:
mvn package
Perintah ini akan membuat direktori baru bernama target
yang berisi file hasil kompilasi berupa .jar
dan .class
.
Selanjutnya kita bisa eksekusi programnya dengan perintah berikut:
mvn exec:java -Dexec.mainClass=com.petanikode.app.App
atau
java -cp target/petanikode-app-1.0-SNAPSHOT.jar com.petanikode.app.App
Parameter -cp
(class path) untuk menentukan lokasi class
program yang akan dieksekusi.
Cukup mudah bukan…?
Berikutnya kita coba menghapus hasil kompilasi dengan perintah:
mvn clean
Selain perintah ini, ada beberapa perintah dasar yang perlu diingat:
mvn package
untuk kompilasi aplikasi;mvn clean
untuk menghapus hasil kompilasi;mvn install
untuk menginstall library yang dibutuhkan;mvn test
untuk menjalankan testing;
Bila kita menggunakan Netbeans, perintah tersebut bisa diakses dengan klik kanan pada project lalu tinggal pilih.
Menginstall Library dengan Maven
Ada banyak library di luar sana yang bisa kita gunakan untuk membuat aplikasi.
Biasanya kita download file .jar
, lalu diimpor ke dalam Project.
Tapi, bila menggunakan Maven, kita tidak perlu melakukan itu. Karena kita akan menyuruh Maven untuk men-download dan mengimpor langsung ke Project.
Caranya bagaimana?
Caranya: kita tinggal tambahkan saja deklarasi dependency library yang dibutuhkan.
Silakan buka https://mvnrepository.com/ untuk mencari library yang ingin diinstal.
Misalkan kita membutuhkan library untuk JSON.
Mari kita coba install GSON, silakan buka: https://mvnrepository.com/artifact/com.google.code.gson/gson/2.8.2
Kemudian copy kode dependency untuk Maven.
Paste di file pom.xml
seperti ini:
Jangan lupa disimpan.
Selanjutnya kita akan buka terminal dari Netbeans untuk menjalankan perintah
mvn install
.
Klik Tools->Open in Terminal.
Ketik perintah mvn install
untuk menginstall library GSON.
Hasilnya, file .jar
dari GSON akan ter-download dan kita bisa impor class
GSON dari kode project. Karena sudah langsung terintegrasi.
Semua library (.jar
) yang diinstal dengan Maven, akan tersimpan
dalam direktori /home/username/.m2
. Bukan di dalam project.
Jika ada project lain yang membutuhkan, maka tinggal mengambil saja dari sana tanpa harus men-download.
Oya, kamu bisa baca cara menggunakan library GSON di: Cara Menggunakan GSON untuk Serialisasi dan Deserialisasi data JSON di Java
Melakukan Testing
Tes akan kita lakukan dengan junit
, karena sudah terinstal di sana.
Pertama-tama, kita ubah dulu kode dari App.java
menjadi seperti ini:
package com.petanikode.app;
/**
* Hello world!
*
*/
public class App {
public static void main(String[] args) {
System.out.println(getHelloWorld());
}
public static String getHelloWorld() {
return "Hello World";
}
}
Di sana terdapat method getHelloWorld()
yang akan kita tes.
Berikutnya kita akan menulis kode test-nya.
Silakan buka file AppTest.java
.
Lalu tambahkan kode:
assertEquals(App.getHelloWorld(), "Hello World");
di dalam method testApp()
.
assertEquals()
adalah method untuk melakukan testing yang
membandingkan persamaan.
Kita akan tes: apakah fungsi getHelloWorld()
benar menghasilkan
String "Hello World"
atau tidak?
Silakan ketik perintah:
mvn test
untuk melakukan testing.
Ini hasilnya jika testing berhasil:
Sedangkan kalau gagal:
Kenapa bisa gagal?
Karena saya mengubah "Hello World"
menjadi "Hello Petani"
di method getHelloWorld()
.
Akhir Kata…
Maven dapat digunakan dengan command line dan IDE.
Kamu lebih suka pakai yang mana?
Saya yakin banyak yang akan menjawab IDE, karena lebih mudah. Namun, kita juga perlu tahu cara menggunakannya di command line untuk melakukan tugas yang tidak bisa dilakukan di IDE.
Selamat belajar Maven.
Referensi: