5 Temmuz 2013 Cuma

Eclipse ile Maven Web Projesi Oluşturmak/How to Create Dynamic Web Project using Maven in Eclipse?

Merhaba arkadaşlar,

Bu dersimizde Eclipse ile Maven Web Projesi oluşturmayı anlatmaya çalışacağım.
Daha önceki derslerimde kullanacağınız maven komutları ve maven nedir ne değildir , nasıl proje oluşturulur değinmiştik.Dileyen buradan göz atabilirler.

Bu yazımdaki uygulamayı geliştirdiğim toollar,
  • Eclipse
  • Maven
  • Jboss
  • M2Eclipse Plugin
Uygulamamıza başlıyoruz.

1) Eclipse de File>New>Other>Maven>Maven Project yolunu izleyerek bir maven projesi başlatıyoruz.























2) Çıkan ekranda projenin kaydedileceği çalışma dizini seçilmesi istenmiş. Mevcut workSpace seçeneği işaretli kalsın ve devam edelim.










3) Çıkan ekranda bira bekleyerek maven archeType listesinin gelmesini bekliyoruz. Liste açıldıktan sonra  maven-archetype-webapp type'ı seçerek devam ediyoruz.

4) Açılan ekranda daha önceki yazımda bahsettiğim proje bilgilerini dolduruyoruz ve Finish diyoruz.














5) Aşağıdaki dizin yapısında bir maven webApp projenizin olması gerekmekte sonuıç olarak.

6) Şimdi sıra mevcut maven projemizi Dynamic Web Project'e çevirmemiz gerekmekte.Bunun için Run>External Tool>External Tool Configuration yolunu izliyoruz.

7) Açılan ekranda Program üzerinde sağ tık ile new Program diyoruz.
8)  Açılan ekranda gerekli bilgileri dolduruyoruz. Resim üzerinde adımları işaretledim.
Location : maven kurduğunuz dizinden bin altındaki mvn.bat dosyasını gösteriyoruz.
Working Directory : Projemizi gösteriyoruz.


9) Run'a tıkladıktan sonra projemiz build edilecektir ve SUCCESS mesajını görmemiz lazım sıkıntısız ilerleyebilmek için.







10) Build başarılı olduktan sonra elimizde Maven ile Dynamic Web Projemiz olacaktır. Şimdi projemiz üzerine gelerek sağ tık yapın ve Refresh diyoruz.















11) Refresh ettikten sonra proje üzerinde sağ tık ile properties açıyoruz ve Project Facets menüsüne geliyoruz. Burada Dynamic Web Project seçili olduğundan emin olalım.

12 ) Şimdi projemiz çalışır duruma gelmiş olmalı eğer bir sıkıntı yok ise. Ben Jboss kullanıyorum Server olarak , sizde farklı bisi yüklü olabilir fark etmez. Şimdi proje üzerinde sağ tık ile Run> Run on Server diyoruz ve açılan pencerede projemizi deploy edilecekler sekmesine atarak Finish diyoruz.
13) Son olarak Finish dediğimizde çalışır durumda olduğunu görmemiz gerekir.

Projemizi oluşturduk ve çalıştığını gördük. Sıkıntı çıkarsa iletişime geçin yardımcı olmaya çalışırım.Bundan sonraki yazılarımda da örnek uygulamalarla devam ediyor olacağım.
Kolay gelsin.

Maven Projesini Clean,Install,Build Etmek/Maven Commands

Merhaba arkadaşlar,

Bu dersimizde sık kullanılan ve projemizi clean , install ve build etmek için kullandığımız ve projemizi tamamladıktan sonra server'a deploy etmek için kullanılan komutlardan bahsedeceğim.

Maven Projesini Build Etmek

Burada bilmemiz gereken komutlardan bir tanesi Maven packaging dir.“mvn package”   validate,compile,test adımlarını işletir .
Proje compile edildikten sonra pom.xml de belirtilen dosya uzantısıyla projemiz oluşur.

Maven Projesini Clean Etmek

Maven cache edilmiş output dosyalarını target altına atar. Projeyi build etmeden önce target dosyasının altını temizlememiz gerekiyor. En son build edilmiş bilgileri almak istiyorsak build komutundan önce clean etmemiz gerekiyor.

Maven Komutları ile Unit Test

mvn test “ komutuyla maven projesinde oluşturdugumuz test sınıfları sırasıyla çalışır.Eğer belli bir sınıfı parametre olarak vermek istiyorsak alttaki komutu çalıştırmamız gerekir

                mvn –Dtest=TestApp test


Maven Install

mvn install” komutu ile jar veya war dosyası oluşturulup local repository içerisine install edilir.Böylece diğer uygulama geliştiriciler projemizi görürler.

Maven Projesini Dökümante Etmek

“mvn site”  komutuyla hazırladığımız projeyi dökümante ederiz. site dosyası altında dökümanlar oluşur.

Şimdi oluşturduğumuz dökümantasyonu server a deploy ederek diğer kişilerin dökümanlarımızı görmesini sağlayalım.

mvn site:deploy” komutu ile oluşturduğumuz dosyayı deploy edebiliriz. Bunun için webdav mekanizmasını kullanacağız.
pom.xml dosyasında  alttaki komut ile server adresini tanımlarız.Dav ‘ın anlamı :webdav mekanizması kullanılacak.



    
      myserver
      dav:http://192.0.0.1/sites/
    

Webdav mekanizmasını kullanabilmek için pom.xml  ‘ e aşağıdaki konfigurasyonu veriyoruz.

   
       
          org.apache.maven.wagon
          wagon-webdav-jackrabbit
          1.0-beta-7
       
  

WebDAV authentication istediği için settings.xml dosyasında  alttaki değişikliği yaptık.
    
       
         appServer
         USERNAME
         PASSWORD
       
    
Daha sonra “mvn site:deploy” komutuyla site dosyasını deploy etmiş olduk.


Sonraki yazılarımda görüşmek üzere.

Apache Maven Repository / Maven Install

Merhaba arkadaşlar,

Bu dersimizde maven için kullanılan repository terimlerinden bahsedeceğim.
Repository ; bellek, depo gibi anlamlara gelmektedir ve Maven da yaptigi gorev itibariyle de bu kelimeyi tam olarak karsilamaktadir. Maven da 3 tane Repository bulunmaktadir.

Maven Local Repository


Bu bizim yerel depomuzdur , bilgisayarimizda bulunan bir klasordur. Maven tarafindan indirilen , projelerimizde kullanilan pluginler ve jarlar bulunur. Local Repository su dizinlerde bulunur;





Windows

C:\Documents and Settings\{kullaniciAdi}\.m2
C:\Users\{kullaniciAdi}\.m2


setting.xml dosyasi araciligyla local repository dosyamizin yeri degistirilebilir.

setting.xml
Dosyada bulunan ilgili alana localRepository tagini ekleyip , klasor dizinini verererek local repository dizimizi degistirebiliriz.



  
C:/users/aboz/maven_repo
....

Maven Central Repository

Maven , gerekli jarlari oncelikle Local Repository’ den arayacaktir.Eger burada bulunamazsa Maven Central Repository ‘e gidecektir. http://repo1.maven.org/maven/

Maven Remote Repository
Bazi jarlar https://home.java.net/ ve http://www.jboss.org/overview/ repository’lerinde bulunmaktadir. Ornegin ; Hibernate gereken bir jari JBoss Remote Repository tanimlamasi yaparak çekmek gerekebilir.
Java.net Repository
    
        java.net
        https://maven.java.net/content/repositories/public/
    
    
JBoss.org Repository
   
    
        java.net
        https://maven.java.net/content/repositories/public/
    
    
İşte maven Maven Install komutu ile jar veya war dosyası oluşturulup local repository içerisine install edilir.

1 Temmuz 2013 Pazartesi

Maven Projesi Oluşturma Örneği / Clean Maven Project

Merhaba arkadaşlar,

Bu dersimizde önceki dersimizde giriş yaptığımız maven teknolojisine maven projesi oluşturarak ve açıklamalarla devam edeceğiz.Maven kurulumunu yapmayan arkadaşlar bir önceki yazıma buradan ulaşabilirler. Evet örneğimize başlayalım.

1 ) Komut penceresini açarak konsolda  mvn archetype:generate  komutu ile karşınıza bir liste gelecek. Bu liste, maven ile oluşturabileceğiniz java projelerinin listesidir. Liste bittikten sonra  karşımıza bir sayı geldi. Bu listeye bakarak istediğiniz proje iskeletinin numarasını girebilirsiniz.

Biz standart bir HelloWorld uygulaması yapacağımız için default olarak gelen 16 numarasını seçiyoruz. Bu sizde farklı olabilir.







İsterseniz ;mvn archetype:generate -DgroupId={packaging.path} -DartifactId={project-id/folder-name} -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
Biz şimdi HelloWorld uygulamamızı oluşturmaya devam ediyoruz.

2) Eğer maven'ın farklı versiyonları kurulu ise makinanızda uygulama numarasını girerk devam ettiğinizde maven versiyonunu ister sizden. Seçerek devam edebilirsiniz. Bende tek sürüm yüklü olduğu için istemedi.
3) Devam edilen ekranda groupId olarak paket ismini istiyor. Paket ismini girerek devam ediyoruz. Ben com.ahmetboz.helloworld olarak girerek devam ediyorum.


komutu ilede uygulamanızı oluşturmaya başlaya bilirsiniz.Ancak listeden oluşturmak istediğiniz uygulama tipini seçerek ilerlemek daha kolay olacaktır. Zaten komut ta da değişen tek yer -DarchetypeArtifactId=maven-archetype-webapp kısmıdır. Burası uygulama yapısını belirlemede yetecektir.





4) Devam eden ekranda artifactId olarak uygulama ismini istemekte.Helloworld yazarak devam edelim.
5) Sonraki ekranda gelen version ve package'i ister girin ister enter olarak geçin.Ben enter ile geçiyorum.Kurulum sonrası gelen ekranda Y diyoruz.


Eğer başarılı bir kurulum yapmışsak BUILD SUCCESS ekranını görmeliyiz.



Şimdi C:\Users\aboz\HelloWorld altına giderek oluşturduğum projeyi görüyorum. Eğer HelloWorld klasörüne girersek şöyle bir ekranla karşılaşıyoruz.


İşte buradaki pom dosyası bize proje hakkında tüm özet bilgiyi veriyor. Dependency altında ihtiyacı olduğu kütüphaneleri listeliyor. Yani Pom (Project Object Model) dosyamız bizim özet dosyamız diyebiliriz.
Eğer src klasörünü incelerseniz aynı yapıda main ve test klasörlerinin olduğunu görürsünüz. Bunlardan main, geliştirdiğimiz taraf, test ise test amaçlı kullanılan taraf. C:\Users\aboz\HelloWorld\src\main\java\com\ahmetboz\helloworld altında App.java dosyasıyla karşılaşacaksınız.Bu default yaratılmış main dosyamız diyebiliriz. İşte klasör yapısına bakacak olursak, standart bir yapı elde etmiş olduk. Dikkat ettiyseniz hiçbir şekilde jar dosyalarıyla işimiz olmadı.
Şimdi uygulamamızı Eclipse de açalım.
Eclipste maven projesi açabilmek için öncelikle bir plugin kurmamız gerekecek. Ben Eclipse Juno kullanacağım.Eclipse açıyoruz. Help > Install New Software > Add dedikten sonra,
Name: maven
Location: http://m2eclipse.sonatype.org/sites/m2e
yazıp, çıkan sonuçlar arasından Maven Integration for Eclipse i seçip yüklüyoruz. Güvenlik uyarısına OK diyoruz ve plugin yüklendikten sonra eclipse kapanıp açılır.



Eclipse açıldıktan sonra File > Import > Maven > Existing Maven Projects ile biraz önceki HelloWorld uygulamamızı gösteriyoruz.
Projemizi açtığımızda dizin yapısına dikkat edin. Aynı projeyi farklı ide'lerde de açasanız aynı standartta bir dizin yapısı görürsünüz ve bu size ide bağımsız proje yürütmeyi mümkün kılar.





Birde pom.xml'imiz var bizim. Buda projedeki bağımlılıkları yönetmenizi sağlayacaktır. Bütün bağımlı .jar ve paketleri burada tanımlayarak olası bağımlılık karmaşıklığından bizi soyutlar. Siz projede ihtiyaç duyacağınız şu jar'ı bu jar'ı indireyim vs. ile uğraşmayacaksınız. Maven sizin için bunu yapacaktır.

Maven Projesini Build Etmek

Burada bilmemiz gereken komutlardan bir tanesi Maven packaging dir.
“mvn package”   validate,compile,test adımlarını işletir .

Proje compile edildikten sonra pom.xml de belirtilen dosya uzantısıyla projemiz oluşur. Mesela “jar” olarak belirtmişsek jar dosyası oluşturulur , “war” olarak belirtilmişse “war” dosyası oluşturulur.

Maven Projesini Clean Etmek

Maven  cache edilmiş output dosyalarını target altına atar. Projeyi build etmeden önce target dosyasının altını temizlememiz gerekiyor. En son build edilmiş bilgileri almak istiyorsak build komutundan önce clean etmemiz gerekiyor.


Maven Komutları ile Unit Test

mvn test “ komutuyla maven projesinde oluşturdugumuz test sınıfları sırasıyla çalışır.
Eğer belli bir sınıfı parametre olarak vermek istiyorsak alttaki komutu çalıştırmamız gerekir

                mvn –Dtest=TestApp test


Maven Install

mvn install” komutu ile jar veya war dosyası oluşturulup local repository içerisine install edilir.
Böylece diğer uygulama geliştiriciler projemizi görürler.

Yukardaki pom.xml dosyasını “mvn install” komutuyla çalıştırırsak HelloWorld.jar dosyası oluşur.
Diğer geliştiriciler alttaki dosyayı ekleyerek projemizi görürler.

  4.0.0

  com.ahmetboz.helloworld
  HelloWorld
  1.0-SNAPSHOT
  jar

  HelloWorld
  http://maven.apache.org

  
    UTF-8
  

  
    
      junit
      junit
      3.8.1
      test
    
  

<dependency>
      <groupId>com.ahmetboz.helloworld</groupId>
      <artifactId>HelloWorld</artifactId>
      <version>1.0</version>
 </dependency>

Basit bir uygulama oldu uygulama da sayılmaz ama böyle anlatımlarda basit olması adına güzel oluyor :).En azından Maven projesi nasıl oluşturulur. Clean, Install komutları vs. öğrenme adına güzel olduğunu düşünüyorum. Kolay gelsin arkadaşlar.