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
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>
anlatım sade vede güzel olmuş,teşekkürler..
YanıtlaSilmerhaba name ve locationdan sonra location ın bulunamadığı hatasını alıyorum nasıl düzeltebilirim?
YanıtlaSilBu yorum yazar tarafından silindi.
YanıtlaSilSelam Esra,
Silmvn 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.
Merhaba ,
YanıtlaSilmvn 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]