Apa itu Apache Maven? POM, lifecycle, dan manajemen dependensi


Tanggal publikasi:

Diperbarui:


Artikel teknis > Apa itu Apache Maven? POM, lifecycle, dan manajemen dependensi

Konteks 2026 dan penggunaan yang aman

Kesimpulan: Maven adalah build tool dan alat manajemen proyek Java berbasis konvensi. POM mendefinisikan koordinat proyek, dependensi, plugin, dan konfigurasi build; phase dalam lifecycle memberi tim proses yang dapat diulang untuk compile, test, package, verify, dan deploy artefak.

Yang akan Anda pelajari

  • Bagian yang dikelola Maven serta bagian yang tetap berada dalam source control atau konfigurasi CI.
  • Hubungan koordinat POM, repository, plugin, phase, lifecycle, dan scope dependensi.
  • Cara memahami resolusi dependensi tanpa menyamakannya dengan seluruh proses build.

Untuk siapa ini: Pengembang Java yang sedang mengevaluasi Maven atau perlu memahami file pom.xml dari proyek lama.

Konteks 2026: Gunakan Maven Wrapper, tetapkan versi plugin, lindungi kredensial repository, dan periksa effective POM di CI. Contoh berikut menjelaskan konsep dasar; pastikan kompatibilitas plugin dan JDK melalui dokumentasi resmi terbaru.

Catatan keamanan: Contoh perintah dan konfigurasi dalam artikel asli belum dijalankan ulang dalam lingkungan produksi saat ini. Verifikasi versi yang didukung, cadangan, kendali akses, dan langkah rollback dalam lingkungan tes yang terpisah sebelum menerapkannya.

Sumber resmi utama

Ikhtisar

Apache Maven, selanjutnya disebut Maven, mengoordinasikan build Java melalui POM, lifecycle standar, dan plugin. Bagian ini menjelaskan tanggung jawab yang sering tersembunyi di balik satu perintah mvn.

Daftar isi

  1. Apa itu Maven?
  2. Apa yang dikelola Maven
  3. Ringkasan

1. Apa itu Maven?

Maven adalah build tool sekaligus alat manajemen proyek. Untuk membedakan kompilasi, packaging, dan build lengkap, baca juga artikel berikut.

Arti build dalam Java: kompilasi, pengujian, packaging, dan eksekusi

Build Maven dapat mengoordinasikan tugas-tugas berikut:

  • menyelesaikan dependensi JAR;
  • mengompilasi dan menguji source code;
  • menentukan direktori output; dan
  • membuat artefak seperti file JAR atau WAR.

Maven menyatukan tugas-tugas tersebut dalam proses build yang konsisten.

Ringkasan resmi Maven menjelaskan tujuan utama proyek ini:

Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal, Maven deals with several areas of concern:

  • Making the build process easy
  • Providing a uniform build system
  • Providing quality project information
  • Encouraging better development practices

Intinya, Maven menyediakan model dan konvensi yang membuat build lebih mudah dipahami dan direproduksi.

2. Apa yang dikelola Maven

Fitur Maven mencakup lifecycle build, resolusi dependensi, plugin, repository, dan metadata proyek. Masing-masing memiliki peran yang berbeda.

2-1. Tugas dalam lifecycle build

Phase Maven mengatur urutan tugas. Contoh berikut menggambarkan peran umum, bukan daftar perintah yang setara:

  • clean: menghapus output build sebelumnya;
  • test: menjalankan pengujian setelah kompilasi; dan
  • package: menghasilkan artefak seperti JAR atau WAR.

2-2. Resolusi dependensi

Maven membaca koordinat dependensi dari POM, mencari artefak di repository lokal atau remote, lalu mengikuti dependensi transitif yang dideklarasikan oleh POM artefak tersebut.

Karena sebuah library dapat membutuhkan library lain, menambahkan satu dependensi dapat membawa beberapa JAR tambahan. Maven menerapkan aturan scope, optional, exclusion, dan mediasi versi saat membentuk dependency graph.

Artikel berikut menjelaskan mekanisme resolusi tersebut secara lebih rinci.

Cara Maven menyelesaikan dependensi transitif dari repositori

2-3. Metadata dan scope dependensi

POM menyimpan groupId, artifactId, version, scope, dan metadata build lainnya. Scope membedakan dependensi yang diperlukan saat compile, test, atau runtime; Maven tidak sekadar “mengelola file JAR”.

Dengan menyimpan POM di source control dan menetapkan versi plugin serta dependensi, tim dapat membangun proyek dengan konfigurasi yang sama. Periksa effective POM dan dependency tree untuk melihat konfigurasi yang benar-benar digunakan.

3. Ringkasan

Maven menggabungkan POM, lifecycle, plugin, dan repository untuk membuat build Java konsisten. Resolusi dependensi merupakan salah satu kemampuannya, bukan keseluruhan fungsi Maven.