Mengenal Apache Maven

Home / Java / Mengenal Apache Maven

Terkadang, ketika kita membuat suatu project menggunakan sebuah IDE, misalnya Netbeans, ketika project tersebut ingin kita buka menggunakan IDE lain *dengan berbagai alasan*, misalnya Eclipse, kita tidak bisa langsung membuka projectnya. Kita harus membuat project baru di Eclipse, baru kemudian mengcopy data-data pada project sebelumnya. Hal ini tentu sangat merepotkan.

Apache Maven hadir untuk mengatasi masalah ini. Apache Maven adalah software build tools / project management yang digunakan untuk melakukan proses building project. Jadi, ketika project kita build menggunakan Maven, project tersebut bisa kita buka menggunakan IDE lain.

Membuat kandang ayam berbeda dengan membuat rumah. Demikian pula membuat rumah berbeda dengan membangun mall. Jumlah pekerja yang terlibat jauh berbeda. Keragaman bahan baku dan peralatannya tidak sama. Kita cuma membutuhkan beberapa papan kayu, paku, dan palu dalam membuat kandang ayam. Tapi tentunya kita tidak bisa menggunakan bahan, alat, dan cara kerja yang sama dalam pembangunan gedung.

Hal yang sama berlaku di pembuatan software. Untuk tugas kuliah, cukup install Netbeans atau Eclipse, kita bisa kerjakan aplikasi sampai selesai. Akan tetapi, untuk membangun aplikasi besar, dibutuhkan persenjataan yang lebih lengkap, diantaranya:

  • version control
  • build tools
  • automated testing
  • continuous integration
  • issue tracker
  • dan lain sebagainya

Pada dasarnya, build tools adalah aplikasi untuk melakukan proses build. Salah satu langkah dalam proses build yang paling kita kenal adalah kompilasi source code. Akan tetapi, bahasa pemrograman jaman sekarang tidak cukup hanya dicompile. Kita membutuhkan fitur lain, diantaranya:

  • Dependency Management : menyediakan library, framework, tools yang dibuat orang lain
  • Compile : mengugbah source code menjadi executable
  • Test : menjaankan test secara otomatis
  • Run : menjalankan aplikasi
  • Package : membuat paket instalasi aplikasi

Konsep build tools ini tidak hanya ada di dunia Java saja. Berikut beberapa aplikasi build tools di berbagai bahasa pemrograman

  • Java
    • Ant + Ivy
    • Maven
    • Gradle
  • Ruby
    • Rake
  • JavaScript
    • Grunt

Maven  adalah  salah  satu  build  tool  populer  yang  dikembangkan  oleh  Apache Foundation dan berfungsi sebagai project management atau pengaturan proyek yang berdasarkan konsep Project Object Model (POM)

Sebagian pengguna Maven akan menyebut  sebagai “alat  pembangun”  yaitu  sebuah  alat  yang  digunakan  untuk membangun  artefak  yang  dapat  di-deploy dari  suatu  kode  sumber.  Seorang pengembang atau developer dan project manager mungkin akan menyebut Maven sebagai sesuatu yang lebih komperhensif yaitu sebuah alat manajemen proyek.

Ant  difokuskan  hanya  pada  pra-pemrosesan,  kompilasi,  pemaketan,  testing  dan distribusi. Sedangkan sebuah alat manajemen proyek seperti Maven menyediakan satu set fitur yang dapat ditemui pada build tool. Selain menyediakan kemampuan membangun, Maven dapat menjalankan laporan, meng-generate  sebuah situs web, serta memfasilitasi komunikasi diantara tim kerja.

Mengapa menggunakan Maven

Bila kita bekerja dalam tim, ada banyak hal yang harus kita seragamkan supaya masing-masing orang bisa bekerja dengan baik. Diantaranya adalah:

  • struktur folder : Di mana meletakkan source code Java, HTML, CSS, JavaScript. Di mana meletakkan image icon dan logo.
  • penggunaan library : Di mana jar disimpan, bagaimana cara mengenalinya dari kode program kita, bagaimana bila upgrade versi
  • workflow : bagaimana menjalankan tes, bagaimana menginisialisasi database

Semua keseragaman di atas harus kita tentukan dan berlakukan di semua project. Bila semua project seragam, maka programmer tidak akan kesulitan pada saat ditugaskan di project manapun, karena bentuk dan aturannya sama. Demikian juga bila sebagai programmer, kita berpindah kantor. Selama kantor baru juga menggunakan aturan yang sama, kita akan bisa cepat beradaptasi.

Dengan Maven, kita tidak perlu lagi membuat aturan kita sendiri. Kita cukup mempelajari dan mengikuti aturan yang sudah dia tetapkan. Selama kita mengikuti aturan Maven, apapun jenis aplikasi yang kita buat (desktop, web, mobile), strukturnya sama.

Maven merupakan tools yang populer dan banyak penggunanya. Dengan demikian, dia didukung oleh semua editor yang beredar di pasaran seperti Netbeans, Eclipse, IDEA, dan lainnya. Didukung di sini artinya mereka bisa mengenali struktur folder dan aturan-aturan dalam Maven.

Kelebihan Menggunakan Maven

  • Dengan Maven kita cuma akan membuat sebuah project yang bisa di buka banyak IDE. Dengan begitu kita hanya buat satu buah project yang bisa dibuka oleh Netbeans atau Eclipse tanpa masalah.
  • Dengan Maven kita tidak perlu bingung menyusun struktur susunan folder yang ada, karena Maven akan otomatis membuatkannya, berbeda kalo kita buat project di Eclipse atau Netbeans, susunan project akan berbeda antar satu IDE dan IDE yang lain, bahkan terkadang IDE yang sama berbeda susunan foldernya contoh: project Netbeans Java Application berbeda dengan Web Application susunan foldernya padahal masih IDE yang sama.
  • Kita tidak perlu pusing mencari framework atau library yang dibutuhkan karena Mavenlah yang akan mencarikan kita lewat repository nya.. untuk yang satu ini kita butuh koneksi internet.. dan repo itu akan disimpan dalam folde .m2 , proses download nya hanya 1 kali untuk library yang sama.

Ada beberapa aturan dalam Maven yang perlu kita ketahui:

  • konfigurasi project
  • struktur folder
  • cara menjalankan

Demikianlah sekilas penggunaan Maven. Untuk lebih lengkapnya, kita bisa baca buku referensi Maven yang sudah disediakan gratis oleh Sonatype

Leave a Reply

Your email address will not be published. Required fields are marked *