Membuat Proyek Maven “Lokal” Untuk Disertakan Dalam Proyek Lain


Untuk menyertakan proyek lain (seperti framework atau helper library), biasanya saya tinggal menambahkan file JAR.  Akan tetapi, bila proyek dari awal sudah menggunakan Maven, alangkah baiknya bila proyek lain disertakan melalui dependency Maven di file pom.xml.  Sebagai contoh, saya perlu meng-edit DbUnit karena ada beberapa “kejanggalan” yang belum diperbaiki pembuatnya, tetapi karena tidak yakin semua orang butuh perbaikan ini, maka saya ingin DbUnit yang sudah dirubah ini hanya dipakai untuk keperluan internal.  Bagaimana caranya?

Saya mulai dengan memilih menu File, New, Project di Eclipse. Lalu saya memilih MavenMaven Project dan men-klik tombol Next.  Pada dialog yang muncul, saya memberi tanda centang di bagian Create a simple project (skip archetype selection).  Lalu saya men-klik tombol Next.  Pada dialog berikutnya, saya mengisi informasi untuk proyek Maven yang akan dibuat seperti pada gambar berikut ini:

Mengisi informasi artifact Maven

Mengisi informasi artifact Maven

Lalu, saya men-klik tombol Finish.

Eclipse akan membuat sebuah proyek baru dengan nama dbunit.  Berikutnya, saya perlu men-copy kode program original DbUnit di package org.dbunit ke folder src/main/java.  Struktur proyek akan terlihat seperti gambar berikut ini:

Struktur Proyek

Struktur Proyek

Berikutnya, saya men-double click pada file pom.xml.  File pom.xml adalah file milik Apache Maven yang berisi seluruh informasi tentang proyek tersebut.  Karena DbUnit  membutuhkan dependency lain, saya harus menyertakan dependency tersebut.  Saya men-klik tab Dependencies.  Kemudian saya menambahkan dependency baru dengan men-klik tombol Add, mengisi Group Id, Artifact Id dan Version yang dibutuhkan oleh DbUnit.  Berikut ini adalah daftar dependency yang dibutuhkan untuk men-build DbUnit:

  1. Group Id:  org.slf4j;  Artifact Id: slf4j-api; Version: 1.6.6
  2. Group Id: commons-collections;  Artifact Id: commons-collections; Version: 3.2.1
  3. Group Id: junit;  Artifact Id: junit; Version: 3.8.2; Scope: test
  4. Group Id: ant;  Articact Id: ant;  Version: 1.7.0;  Scope: provided
  5. Group Id: org.apache.poi;  Artifact Id: poi;  Version: 3.2-FINAL;  Scope: provided

Karena saya sedang terkoneksi ke Internet, begitu selesai mengisi dependency yang ada dan men-save file pom.xml, Eclipse akan secara otomatis men-download file artifact yang dibutuhkan.

Sampai disini, saya tinggal melakukan perubahan kode program sesuai kebutuhan dan tujuan.

Setelah perubahan kode program selesai dilakukan, saya tidak bisa langsung memakai hasil perubahan di proyek lain.  Saya terlebih dahulu harus men-install proyek ke repository lokal.  Caranya adalah dengan men-klik kanan nama proyek dbunit, memilih Run As, Maven install seperti yang terlihat pada gambar berikut ini:

Men-install Proyek Pada Repository Lokal

Men-install Proyek Pada Repository Lokal

Bila ini pertama kalinya saya men-install proyek Maven, maka saya harus memastikan saya sedang terkoneksi ke internet.  Hal ini karena Maven akan men-download beberapa plugin yang dibutuhkan untuk men-install proyek secara otomatis.

Untuk memastikan bahwa proyek sudah ter-install di repository lokal, saya akan memeriksa isi repository lokal.  Lokasi default-nya adalah di C:\Users\[nama_user]\.m2.  Sebagai contoh, saya menemukan dbunit versi lokal saya di folder berikut ini:

Memeriksa Isi Repository Lokal

Memeriksa Isi Repository Lokal

Setelah ini, saya bisa memakai artifact di atas di proyek lain secara mudah.  Caranya cukup dengan menambahkan dependency Maven baru pada proyek yang akan DbUnit hasil modifikasi ini.  Di dialog Select Dependency, bila saya mengetikkan dbunit untuk pencarian, artifact di repository lokal juga akan ikut muncul, seperti yang terlihat pada gambar berikut ini:

Menambah Dependency Dari Proyek Lain

Menambah Dependency Dari Proyek Lain

Perihal Solid Snake
I'm nothing...

One Response to Membuat Proyek Maven “Lokal” Untuk Disertakan Dalam Proyek Lain

  1. Ping-balik: Keanehan DateTime Di DbUnit + Excel « The Solid Snake

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: