Wicket ve Maven

Wicket gördüğüm en iyi framworklerden biri. Fakat yeni başlayan biri için kurulumu ve anlaşılması oldukça zor. Yanlış anlaşılmasının bunu, kaynaklarının zayıf olduğunu ima ederek söylemiyorum. Wicket kaynakları açısından da gayet başarılı bir framework. Wicket dağıtımını sitesinden indirdiğinizde, paket içerisinde gelen örnekler bile çoğu durum için yeterli oluyor. Yinede daha önce hiç web projesi yapmamış biri için sıfırdan başlamak zor olabiliyor. İşte maven bu sorunları ortadan kaldırıyor. Sadece wicket için değil başka bir çok faramework ve araçlar için işinizi çok kolaylaştırıyor.

Maven Nedir?

Maven bir derleme(build) aracı, yani sizin için istediğiniz şekilde projenizi derlemenize ve istediğiniz çıktıları almanıza olanak sağlıyor. Aynı Ant gibi yani. Fakat esas farkını diğer kısımlarında belli ediyor.

  • Projenizin bağımlılıkları temiz bir şekilde görülebildiği gibi, istediğiniz kaynak kodu depolarından istediğiniz kütüphaneleri kolaylıkla ekleyebiliyorsunuz.
  • Kaynak kodlarınız için temiz bir dosya hiyerarşisi tutuyor. Bu sayede kolaylıkla neyin nerede olması gerektiğine kararverebiliyorsunuz. Genelde bu standart olduğu için, maven kullanarak hazırlanmış başka projeleride okumanız kolaylaşıyor.
  • Maven derlerken esnek bir yapı kullanıyor. Bu sayede istediğiniz maven eklentilerini kullanarak derleme işlemini esnekleştirebiliyorsunuz. Aynı zamanda isterseniz Ant scriptlerinide kullanabiliyorsunuz.
  • Size projenizi takip etmenizi sağlayan sunucular ve sorunlarınızı takip etmenize yardımcı olan sistemlerle de uyumlu bir şekilde çalışmakta

Bu özelliklerin çoğu için proje sırasında emek ve zaman harcanmakta. Maven bu zamanı size kazandırdığı gibi içinde bulundurduğu özelleştirilmiş proje yapıları ile projelere başlamanızı kolaylaştırmaktadır. İşte tam bu özelliği bu yazının konusu olacaktır.

Fakat özelleştirilmiş proje yapılarının ne olduğuna geçmeden önce maven kurulumuna ve mavenin eclipse ile entegre edilmesine bir bakalım.

Maven Kurulumu ve Eclipse

  • Öncelikle maven’ indiriyoruz. Bunun için aşağıdaki linkten kendinize uygun olan binary dağıtımı indiriniz.
    http://maven.apache.org/download.html
  • İndirdiğiniz dağıtımı sizin için uygun olan bir yere çıkartın.
  • Çıkarma işlemi başarıyla bittiğinde, klasörün içerisindeki bin klasörünün yolunu sistem yolunuza ekleyin.
  • Daha sonra komut satırından “mvn –version” komutu ile çalışıp çalışmadığını kontrol edebilirsiniz.
  • Daha ayrıntılı bilgi için, maveni indirdiğiniz sayfasında alt tarafları kontrol edebilirsiniz.

Kurulumu anlatmış olmama rağmen, uzun uzun mavenin nasıl kullanılacağını anlatmayacağım. Kısaca her maven projesi içerisinde pom.xml isminde bir dosya bulunur. Maven ile ilgili porje bazlı tüm ayarlarınızı bu dosya üzerinden gerçekleştirirsiniz. Bağımlılıklarınızdan tutunda, derleme seçeneklerinize kadar herşey bu dosyanın içerisindedir. Biz genelde Eclipse eklentisi kullanacağımızdan çok falza bu dosya ile ilgilenmeyeceğiz.

Eclipse için m2Eclipse eklentisi kullanılıyor. Bunu doğrudan Market Place’ten indirebileceğiniz gibi, Indigo ile birlikte doğrudan Eclipse Update linkinden de indirebilirsiniz. Bunuda kurduktan sonra artık özelleştirilmiş projeler yaratmaya hazırız.

Maven ve Özellestirilmis Projeler

Nasıl ki eclipse içerisinde Dynamice Web projesinden tutunda çeşit çeşit başka projeler yaratabiliyorsunuz maven ile de projeler belirlemeniz mümkün. Aslında bunlara proje demem çokta mantıklı değil. Örneğin bir wicket projesi yaratmak istiyorsanız, size wicket, log4net, jetty ve junit kurulu bir şekilde bir java projesi yaratıyor. Tabi bunları tek tek kurmak çalıştırmak ve test etmek zahmetli bir iş.

Maven beraberinden bir sürü proje ile geliyor. Bunların bazılarının adlarını duymadığımı farketmek beni üzsede genel olarak bilindik projeler de var. Biz ise bu yazı içerisinde güncel bir proje kuracağız.

Wicket ve Maven

Öncelikle Eclipse altından bir maven projesi oluşturarak başlıyoruz. ilk ekrandaki bilgilere dokunmadan next dediğimizde bize ne tür bir Archetpye kullanmak istediğimizi soran bir ekran ile karşılaşıyoruz. Burda ne tür projeler olduğunu inceleyebilirsiniz. Aynı zamanda genellikle maven-archetype-quickstart seçili olur. Fakat bizim wicket ile ilgili bir archetype’a yani özelleştirilmiş yapıya ihtiyacımız var. Bunun için Add Archetype… butonu ile yeni bir archetype ekliyoruz.

  • Group ID: org.apache.wicket
  • Artifact ID: wicket-archetype-quickstart
  • Version: 1.5.4
  • URL: https://repository.apache.org/

Yukarıdaki bilgileri girdiğinizde yeni archetype’ınızını eklemiş olacaksınız. Fakat ekleme sırasında hata ile karşılaşırsanız ya da daha güncel bir archetype’a ihtiyacınız olursa Wicket sitesini ziyaret edebilirsiniz.

Sonraki ekranda ise size projeniz ile ilgili bilgiler sorulacaktır. Projenize ait Group ID‘si projenizin paket adının temelini oluşturmaktadır. Örneğin ben Bits Bilgisayar için çalışıyorum ve şirkette paket adları için com.bits ön ekini kullanırız. Yani bu ön ek alında gruplanırız. Artifact Id ise projenin adının ne olduğu bilgisidir. Eclipse içinde gösterilecek proje adı buradan alınacaktır. Versiyon ise zaten adından anlaşıldığı için ayrıntıya gerek yok. Bunları burada girerken tereddüt etmeyin, çünkü istediğiniz takdirde pom.xml dosyası içerisinde değiştirebilirsiniz.

Yukarıda gösterilen şekilde projenizi oluşturduğunuzda ise size aşağıdaki dosya yapısına sahip bir proje oluşturacaktır. İlk projeniz ise oluşturulması biraz uzun sürebilir. Bunun sebebi maven porje bağımlılıklarını indirecektir. İndirdiği bu bağımlılıklar .m2 adlı bir klasörde tutulmaktadır. Böylelikle projeyi başkasına verirken ya da versiyonlama sisteminize yüklerken bağımlılıkların yüklenmesini beklemeyeceksiniz.

Burada projeniz için gerekli olabilecek her dosya yaratılmış durumda. Sizin tek yapmanız gereken doğru yaratılıp yaratılmadığını kontrol etmek adına Start.java dosyasını çalıştırmak. Çalıştırdığınızda ve localhost:8080 adresine girdiğinzide Wicket projenizin başarıyla başladığını göreceksiniz. Bundan sonra istediğiniz şekilde değişiklikler yapabilir ve Wicket’a sinir olmadan başlayabilirsiniz.

Tomcat vs Jetty

Wicket kullanan herkese projelerini bu şekilde gerçeklemelerini tavsiye ediyorum. Fakat herkesin tereddüt ettiği kısım Tomcat’i bırakma kısmı oluyor. Normal şartlarda Java’da çalışan ya da çalışmaya yeni başlayan kişilere Tomcat önerilir. Aslında tomcat’in başarısı düşünüldüğünde bu doğru bir seçimdir.

Fakat genellikle kimse tomcat üzerinde ayar yapmaz olduğu gibi alır ve kullanmaya başlar. Ufak projeler için bu sorun olmazken projeniz büyüdüğünde bu soruna yol açacaktır. Projeniz büyüdüğünde tomcat 20.000 milisaniye başladığında kendinizi şanslı hissetmeye başlıyorsunuz. Oysaki bu durum Jetty’de 300 milisaniyeyi geçmiyor. İşinize yaramayan hiç bir şeyi yüklemiyorsunuz.

Tabi bu bahsettiğim geliştirme ortamınız için geçerli. Üretim kısmınızda jetty kullanmanın ne kadar doğru olduğunu bilmiyorum. Çünkü daha hiç Tomcat’i bırakacak kadar güvenli hissetmedim kendimi.

Maven’in güzel yanı sizin için projenizi paketleyip .war formatına getiriyor. Bu sayede, üretim ortamınızdaki tomcat’i değiştirmeniz gerekmiyor. Ayrıca dikkatinizi çekmek istediğim bir diğer kısımsa, projenizi maven ile geliştirip sonra tomcat’e yüklediğiniz de, tomcat ile geliştirip yüklediğinizden daha hızlı açılmaktadır. Bu biraz garip gelebilir fakat bir deneyip kendi gözünüzle görmenizde fayda var derim.

Kaynaklar

End Of Line