8 Mayıs 2017 Pazartesi

POM Nedir?

POM’un açılımı Project Object Model'dir. Türkçe karşılığı “Proje Nesne Modeli” anlamına gelir. POM bir “xml” dosyadır. İçerisinde Maven tarafından derlenen projeninin kullandığı proje ve yapılandırma detayları hakkında bilgileri içerir. POM’da; maven projesinin kimliği ve yapısı tanımlanır, ayarlar yapılır. 


POM dosyası proje dokümantasyonu da içerebilmektedir. Proje hakkında bilgi edinmek için pom.xml dosyasına bakmak yeterli olacaktır. (tanım, geliştiriciler, lisans, bağımlı olduğu diğer projeler v.s.)

Dosyanın içeriğinde genellikle şunlar bulunabilir:
  • Proje’ye ait bilgiler, proje ismi, grubu, sürümü, paket tipi (JAR, WAR, EAR vs.)
  • Dependency’ler (JAR dosyaları birer bağımlılık(dependency) olarak adlandırılır. )
  • Repository’ler (dependency’lerin indirileceği yerler)
  • Plugin‘ler ve Extension‘lar (bir çok işlem için bir eklenti kullanılır)
  • Profiller (live ortam ve test ortamı için farklı profiller tanımlanabilir)
  • Execution ve Goal tanımları (hangi aşamada hangi işlemin yapılacağı)
  • Distribution bilgileri (build başarılı olduğunda deploy yapılacak yerler)
  • Compile bilgileri (encoding, jdk sürümü vs.)- developerlar ve mail listeleri

pom.xml içerisindeki temel elementlerin bazılarının açıklamaları aşağıdaki gibidir:

<project> : proje anlamındadır. pom.xml dosyasının en üst kök elemanıdır.

<modelVersion> : model versiyonu anlamındadır. Kullanılan POM versiyonunu belirtir. Örneğin, “2.0.1”

<groupId> : grup kimliği anlamındadır. Maven projesini yapan birimin kullanıcı kimliği bilgisidir. Örnek olarak şöyle bir tekil kimlik verilebilir; “com.hope”. Java dünyasında genellikle groupId projenin web adresi ile alakalıdır. Eğer projenizin web adresi “hope.com” ise groupId “com.hope” olabilir. Bu şart değil, sadece genel yazılı olmayan bir kuraldır.

<artifactId> : yapı kimliği anlamındadır. Oluşturulan ana yapının adını ifade eder. Örnek olarak “my-app”

<version> : versiyonu ifade eder. Projenin ve modülün versiyonunu belirtir. Örneğin, “15.9.0”

<packaging> : paketleme anlamındadır. Paketleme türünü belirtir. Örneğin, “jar”,”war”,”pom” veya “ear” gibi.

<name> : ad anlamındadır. Projenin adını ifade eder. Örneğin “HOPE Management and Communication”.

<url> : URL anlamındadır. Varsa projenin bulunacağı web adresini ifade eder. Örneğin, “http://hopelightning.blogspot.com”

<description> : açıklama anlamındadır.

<dependency> : Bir bağımlılık temsil eder. İçerisinde bağımlılığa ait özellikleri barındırır. (JAR dosyaları birer bağımlılık(dependency) olarak adlandırılır. )

Kaynaklar :
http://yazilimcity.net/maven-pom-nedir-ne-ise-yarar-nasil-kullanilir/

http://www.turkjava.com/maveni-taniyalim-terminolojisini-ogrenelim-ne-nedir/

Hiç yorum yok:

Yorum Gönder