2008/2/1 Johan I Zahri <[EMAIL PROTECTED]>:
>
>  --- In [email protected], "Andry S Huzain"
>
>  <[EMAIL PROTECTED]> wrote:
>
>  > ** Maven. Tapi sekarang ga yakin karena kata Endy ga enak pake Maven :))
>
>  boleh tahu knp ngk enaknya?
>  eager to know..
>

Yang namanya teknologi itu, with great power comes great complexity.
Nah, tinggal sekarang apakah tambahan complexity tersebut benar2
terpakai atau tidak.

Maven dari sudut pandang saya begini.

Buat apa orang pakai Maven?
Biasanya jawabannya adalah:
1. Manage dependencies terhadap jar yang kita pakai
2. Generate website
3. Generate project template (a.k.a archetype) berdasarkan environment
yang kita gunakan.
4. Mengotomasi task2 yang umum ditulis di build.xml seperti compile,
javadocs, dsb

Nah, YMMV ....
Kalo saya sih,
1. Dependencies,
Saya lebih suka resolve dependencies di awal project, simpan jarnya di
version control bareng sama source-code.
Jar dependency itu urusan yang sebaiknya tidak diotomasi.
Kenapa? Karena kita pengen mengontrol jar versi berapa aja yang
include di aplikasi kita.
Lagipula, resolve dependency ini cuma sekali aja di awal project dan
biasanya tetap fixed selama:
- kita tidak naik versi di tengah2 project
- kita tidak ganti target deployment (dev pakai tomcat, prod pakai
glassfish misalnya)

2. Generate website
Saya lebih suka pakai Drupal. Lalu dump database dan keseluruhan
websitenya masuk ke version control.
So, generate database gak kepake

3. Generate project template.
Ini juga kerjaan sekali di awal project.
Saya lebih suka melakukan secara manual.
Kerugiannya cuma satu : repot dan wasting time.
Tapi biasanya project template tidak terlalu sering berubah.
Paling kalau kita upgrade versi (misalnya JSF 1.1 ke 1.2).
Itupun cuma jarnya aja.
Keuntungannya:
- jar yang diinclude bisa lebih efisien (compared with appfuse for example)
- di tempat saya, project itu harus mengenable banyak sekali automated test.
  daripada saya harus membuat maven ngerti maunya saya, lebih baik
saya tulis build.xml
- lebih bebas ..
   saya bisa pakai winstone instead of jetty,
   saya bisa ant generate-schema -Ddbtype=mysql
   ant generate-izpack-installer

Saat ini saya punya project template untuk:
- All Spring (MVC, JDBC, Velocity)
- JSF-Spring-Hibernate
- SpringMVC-Hibernate


4. Otomasi task2 yang sering digunakan.
Task2 seperti compile, run unit test, dsb pasti ada dari project ke project.
Biar gak bolak-balik nulis task ini, saya pakai pendekatan kuno, tapi
dead-simple.
Copy-paste dari build.xml project sebelumnya.
Works like charm ...


Tentu saja pendekatan ini gak bisa jalan untuk semua orang.
Supaya bisa mengikuti jalan saya, setidaknya Anda harus :
- bisa menulis build.xml from scratch
- mengerti semua jenis test/tools yang mau digunakan
- bisa integrasi berbagai framework

Silahkan pilih jalannya.
Mau belajar kompleksitas maven, atau belajar 3 hal di atas.
IMHO, 3 hal tersebut ROI-nya lebih tinggi.


-- 
Endy Muhardin
http://endy.artivisi.com
Y! : endymuhardin
-- life learn contribute --

Kirim email ke