Maven kullanarak web uygulaması geliştirmek (basit olsun)
Pzt 18 Oca 2010 07:34:14 | 2 yorum
Öncelikle şu adresden : http://maven.apache.org/ indirin, sisteminize dosyaları kopyalayın ve path değişkenine ekleyin.
Şimdi başlayabiliriz;
Projeye ilk adım bir proje oluşturmaktır, ister eclipse ister netbeans ister IntelliJ ( Bu arada ücretsiz sürümü de mevcut ) olsun bu akış hep aynıdır; ve bir sürü soru işareti o anda başlar
- Proje oluştururken kaynak kodlar hangi dizinde duracak ?
- Derlenmiş class dosyaları nerede duracak ?
- xml dosyaları nerede duracak ?
- ...
Her kurumun bu sorular için verdiği standart cevaplar olmadır. 2 veya üzeri geliştirici gruplarında uygulama geliştirmek tam bir eziyete dönebilir. Zamanında slick edit ile uygulama geliştirdiğim günleri hatırlayınca o zamanlar bu dizin ve dosya karmaşıklığının ne kadar büyük boyutlarda olduğu aklıma geliyor ve maven teknolojisine bir kez daha teşekkür ediyorum.
Peki Maven nedir (kısaca) ?
Maven ile projelerinizi, IDE bağımsız (netbeans, eclipse gibi) bir hale getirirsiniz. Yani kolay bir şekilde kod geliştirmeye yarayan bir araç. Hem de belli standartlar ile kaynak kodu nereye koyacağım ? şunu ne yapacağım derdine son veren bir araç.
Maven'in başka faydası nedir ? Anlayamadım
Bir şirkette 3 kişi aynı proje üzerinde çalışıyorsunuz herşey çok güzel. Sonra günlerden birgün takıma bir yeni arkadaş daha katılır ve siz adamla tanışırken aklınızdan "ulan şimdi adamın bilgisayarına projeyi çalıştırmak için 1 gün boyunca ayar yapmam lazım, xml ler c: altinda, java dosyaları şu dizinde, bir de ne vardı yaa" soruları geçebilir.
Maven bu acıya son verir, herşey tek bir komut satırıyla yeni gelen kişinin bilgisayarına kopyalanır ve çalıştırılır. Bu iş için subversion sistemine de ihtiyaç var, bunun için Taner Diler'in yazısını okumanızı tavsiye ederim.
Maven sayesinde bir projeyi herkes kolay bir şekilde açıyor ve üzerinde çalıştırabiliyor, doğru mu anladım ?
Kesinlikle doğru ! maven sayesinde IDE'lerden bağımsız proje geliştirmek mümkündür. Bir kişi eclipse de projeyi geliştirmeye devam ederken, diğer bir kişi netbeans de devam edebilir. Veyahut hiçbir IDE kullanmadan da sadece notepad veya notepad++ türü editörlerle uygulama geliştirebilmek mümkündür.
Projede gerekli olan jar dosyaları nerede ?
Internette. Evet projenin kullandığı jar dosyaları repository denen alanlarda tutulur. Örneğin Apache Wicket 'a ait gerekli jar dosyaları için pom.xml aşağıdaki satırları eklemek yeterli olacaktır.
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket</artifactId>
<version>1.4.5</version>
/dependency>
pom.xml dosyası içerisinde yukarıdaki tanım şu anlama gelir : Git ; org.apache.wicket projesindeki wicket kütüphanesini al (internet üzerinde jar indirmece). Dahası da var eğer bu jar başka bir jar'a bağımlıysa, gidip o jar dosyasınada alır. Bu harika bir olaydır.
Bağımlılık nedir ?
Bağımlılık başa bela bir kavramdır, tam tüm jar dosyalarını aldım dersiniz ama çalışma anında (run-time) proje çakılır, meğerse başka bir jar dosyasına daha ihtiyaç olduğunu anlarsınız. Örnek ve orta boy bir projenin kütüphane ve bağımlılık ilişkisi aşağıdadır.
Yukarıdaki resimde bir proje google-guice kullanıyor ve bu kütüphane aopalliance kütüphanesine bağımlı. Güzel olan nokta ise siz bunları ezberlemek zorunda değilsiniz. İşte Maven bu bağımlılık listesini güzel bir şekilde yönetmenizi sağlar.
Maven projesinin yapısı nasıldır ? Basit bir uygulama göstebilir misiniz ?
Bu yapı meselesi 2 kısma bölmek daha anlamlı olacaktır.
1 - Projenin kabuk içindeki hali
Bu aşama projenin subversion gibi sistemlerde nasıl saklanacağı ile alakalıdır. Subversion yani projenin kabuk içerisinde hali. İşte örnek bir proje
Kabuk içerisindeki projemiz bu şekilde olmalı. pom.xml + kaynak kodlar + eğer varsa diğer kaynaklar (resim + css + javascript gibi...) ama hepsi bu kadar. jar dosyaları ve/veya class dosyaları bu kabuk halindeki proje aşamasında olamaz. Bu saçmalıktır.
2 - Projenin yeşermiş hali
Projeyi kendinize çektikten sonra tek yapmanız gereken şu komut : mvn jetty:run
Bu aşamadan sonra uygulama 8080 port üzerinde çalışır (dikkat edin başka bir uygulama 8080 den çalışıyor olmasın).
Hepsi bu kadar. "Eee Tomcat nerede ?" Uygulama geliştirme ortamında Tomcat'in yerini jetty aldı. Daha hafif ve basit. Tomcat artık "production" ortamında.
Heeey projemiz çalışıyor :
Bu proje için Maven ne yaptı ? kısaca sıralarsa
- Gerekli jar dosyalarını alıp indirdi.
- Bağımlı olan jar dosyalarını alıp indirdi
- Kodları derledi.
- jetty 'ye aktarım yaptı.
- jetty'i çalıştırdı.
Bir ufak proje için hiç de fena değil.
Proje artık yeşerdi, projenin bulunduğu dizine gidecek olursanız "target" dizinin oluştuğunu göreceksiniz. İşte bu dizin içerisinde class lar ve diğer indirilmiş jar dosyalarını bulabilirsiniz. Sakın bu kısmı subversion içerisine atmayınız - attırmayınız.
Örnek proje için : http://code.google.com/p/jtpd/source/browse/trunk#trunk/wicket_temel_proje adresinden kodları çekebilirsiniz.
Eclipse kullananlar bu maven projesini nasıl açacak ?
Eclipse üzerinde aşağıdaki bileşenleri kurunuz.
- Subclipse - kodları göz atmak ve indirmek için
- m2eclipse - maven desteği içim
Ya Netbeans ?
Netbeans in plug-in indirme bölümünden bu destekli hızlı bir şekilde indirebiliyorsunuz.
Sonuç
Maven kullanınız, bu neredeyse dünyada Java projeleri için bir standart haline gelmiştir ve bunun haklı gerekçeleri vardır.
Altuğ Bilgin ALTINTAŞ
altug - et -kodcu.com
Yorum
okanakyuz
23 ay önce
Sil
alper
23 ay önce
Sil
ya da