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 --

