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.

5 yorum :

  1. anlatım sade vede güzel olmuş,teşekkürler..

    YanıtlaSil
  2. merhaba name ve locationdan sonra location ın bulunamadığı hatasını alıyorum nasıl düzeltebilirim?

    YanıtlaSil
  3. Bu yorum yazar tarafından silindi.

    YanıtlaSil
    Yanıtlar
    1. Selam Esra,

      mvn archetype:generate komutuna -DarchetypeVersion=1.1 gibi version vermen gerekebilir. "mvn archetype:generate -DarchetypeVersion=1.1" böyle dener misin. Öncesinde mvn intall yapmayı da deneyebilirsin.

      Sil
  4. Merhaba ,
    mvn archetype:generate komutunu çalıştırdığımda aşağıdaki hatayı alıyorum.Yardımcı olabilir misiniz?
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3
    .0.1:generate (default-cli) on project standalone-pom: The desired archetype doe
    s not exist (org.apache.maven.archetypes:maven-archetype-quickstart:1.1) -> [Hel
    p 1]

    YanıtlaSil