Maven POM nedir? ne işe yarar? nasıl kullanılır?

Maven projelerinde karşınıza çıkan POM (Project Object Model) yani türkçe karşılığı olarak ise “Proje Nesne Modeli”, Maven için basit temel birimdir. POM, “xml” uzantılı bir dosyasıdır, içerisinde Maven tarafından derlenen projeninin kullandığı proje ve yapılandırma detayları hakkında bilgileri içerir.

pom.xml içerisindeki temel anahtar elementlerin bazılarının Türkçe 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, “4.0.0”

<groupId>

grup kimliği anlamındadır. Maven projesini yapan birimin tekil kullanıcı kimliği bilgisidir. Örnek olarak şöyle bir tekil kimlik verilebilir; “net.yazilimcity”

<artifactId>

yapı kimliği anlamındadır. Oluşturulan ana yapının ya da alt modüllerin tekil adını ifade eder. Örnek olarak “my-app”

<version>

versiyonu ifade eder. Projenin ve modülün versiyonunu belirtir. Maven versiyonlamalarında kullanılır. Örneği, “15.9.0”

<packaging>

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

<name>

ad anlamındadır. Projenin adını ifade eder. Örneği “KINIK Management and Communication”.

<url>

URL anlamındadır. Varsa projenin bulunacağı adresi ifade eder. Örneğin, “http://yazilimcity.net/”

<description>

açıklama anlamındadır. Projenin veyahutta modül hakkında açıklama girilebilir. Örneğin, “KINIK Package Application”

<repositories>
    <repository>
    
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id></id>
        <name></name>
        <url></url>
        <layout></layout>
        <snapshots>
            <enabled></enabled>
        </snapshots>
        <releases>
            <updatePolicy></updatePolicy>
        </releases>
    </pluginRepository>
</pluginRepositories>
<build>
    <directory></directory>
    <outputDirectory></outputDirectory>
    <finalName></finalName>
    <testOutputDirectory></testOutputDirectory>
    <sourceDirectory></sourceDirectory>
    <scriptSourceDirectory></scriptSourceDirectory>
    <testSourceDirectory></testSourceDirectory>
    <resources>
      <resource>
        <directory></directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory></directory>
      </testResource>
    </testResources>
  </build>
<reporting>
    <outputDirectory></outputDirectory>
  </reporting>
  <profiles>
    <profile>
      <id></id>

      <activation>
        <property>
          <name></name>
        </property>
      </activation>

      <build>
        <plugins>
          <plugin>
            <inherited></inherited>
            <groupId></groupId>
            <artifactId></artifactId>

            <executions>
              <execution>
                <id></id>
                <goals>
                  <goal></goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <inherited></inherited>
            <groupId>s</groupId>
            <artifactId></artifactId>

            <executions>
              <execution>
                <id></id>
                <goals>
                  <goal></goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <inherited></inherited>
            <groupId></groupId>
            <artifactId></artifactId>

            <configuration>
              <updateReleaseInfo></updateReleaseInfo>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
<project>
  <parent>
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
  </parent>
  <modelVersion></modelVersion>
  <artifactId></artifactId>
</project>
<project>
  <modelVersion></modelVersion>
  <groupId></groupId>
  <artifactId></artifactId>
  <version></version>
</project>

Modülleri tanımlamak için

<modules>
    <module>../my-module</module>
</modules>

Zaman damgası için

<properties>
    <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'</maven.build.timestamp.format>
</properties>
Share on Facebook0Tweet about this on TwitterShare on Google+0Share on StumbleUpon0Share on Reddit0

1 Comment

  1. […] içeren dosyadır. Pom ile ilgili daha detaylı bilgi için buraya ya da türkçe kaynak için buraya […]

Leave a Reply


*