Bu bölümde örnek bir Maven projesi oluşturup detaylarıyla inceleyeceğiz. Anlatacaklarım daha önce yayınladığım Maven Rehberi belgesindeki bilgilerin üzerine kurulacak. Eğer okumadıysanız şimdi okumanın tam zamanı.
Komut satırından mvn archetype:generate komutunu girerek, etkileşimli kipte proje oluşturmaya başlayın. Listelenen proje iskeletleri arasından maven-archetype-quickstart'ı seçin ve istenilen bilgileri girin. Projenizin artifacId'sini simple olarak adlandırırsak, Maven komutu çalıştırdığınız dizinde simple/ adında bir dizin oluşturacaktır. Bu dizinin yapısı:
simple/[1] simple/pom.xml[2] /src/ /src/main/[3] /main/java /src/test/[4] /test/java
Bu yapıyı incelersek oluşturulan her proje için şunların yapıldığı sonucuna varabiliriz:
- Projenin artifactId'si ile aynı adda bir dizin: simple/.[1]
- İçinde POM.xml.[2]
- Projenin kaynak kodlarının koyulacağı src/main dizini.[3]
- İçinde groupId ile aynı paket yapısının içinde App adlı basit bir Java programı.
- Test kodlarının koyulacağı src/test dizini ve içinde App programının testi olan AppTest.[4]
maven-archetype-quickstart proje iskeleti Maven'ın tanımladığı en basit proje yapısını oluşturur. Bu projede sade bir POM, App adında bir Merhaba Dünya uygulaması ve bunun AppTest adında bir testi bulunur.
mvn install komutu simple projesi üzerinde İnşa Yaşam Döngüsünün install evresini çalıştırır. İnşa Yaşam Döngüsü bir projeyi inşa etmek için teker teker çalıştırılan(geçilen) bir dizi evredir(phase). Maven'ın işletebileceği birçok yaşam döngüsü vardır. Ancak en önemlisi projenin kontrolü, derlenmesi, paketlenmesi, yayınlamasını da içeren İnşa'dır. Eklenti hedefleri yaşam döngüsü hedeflerine bağlanabilir. Maven döngüde ilerlerken her evreye bağlanmış hedefleri sırayla çalıştırır. Her evrenin sıfır veya daha fazla hedefi olabilir. Örneğin bizim projemiz JAR çıktısı verdiği için package evresine jar:jar hedefi bağlanmıştır. Eğer WAR çıktısı verseydi war:war hedefi çalıştırılacaktı.
Maven'da bir evreyi çalıştırmak, belirtilen evre ve öncesindeki bütün evrelerin çalıştırılmasına neden olur. Örneğin mvn package komutu çalıştırıldığında Maven package ve öncesindeki her evre için resimde görülen hedefleri çalıştırır. Çalıştırılacak hedeflerin seçimi projenin ayarlarının belirtildiği POM dosyasındaki girdilere göre değişir.
maven-archetype-quickstart iskeleti projenin testlerini çalıştırmak için kullanılmak üzere JUnit-3.8.1 için bir bağımlılık tanımlar. mvn install komutunu çalıştırdığınızda Maven, bu bağımlılığı internetten indirip yerel deponuza JUnit'in koordinatlarını da göz önünde bulundurarak koyar. Junit-3.8.1 in koordinatları şöyledir: junit:junit:3.8.1. Eğer ~/.m2/repository/ altına bakarsanız, bu şekilde bir dizin yapısı oluşturulduğunu ve içine de junit-3.8.1.jar ın yerleştirildiğini görürsünüz: /junit/junit/3.8.1/junit-3.8.1.jar
Maven bağımlılıklar için jar'ın dışında bağımlılığın pom.xml dosyasını ve indirmenin doğru yapılıp yapılmadığını kontrol için SHA-1 dosyalarını da indirir. Bağımlılığın pom'u geçişli bağımlılıkları bulabilmek için indirilir.
Hiç yorum yok:
Yorum Gönder