Maven

MAVEN NEDİR

Maven, JDT (Java Development Tool) gibi bir Java geliştirme aracıdır. Maven’in geliştirilmesinin nedeni Ant’ın üst düzey bilgi içeren kullanımının karmaşık olmasıdır. Maven proje geliştirirken standart oluşturmamıza, geliştirme sürecini basitleştirmemize ,projeyi IDE bağımlılığından ve kütüphane bağımlılığından kurtarmayı sağlayan bir araçtır [1,2].

Faydaları

1) Maven kalıpları bir standart haline geldiği için tüm IDE‘ lerde çalışır.
2) Kurulum da esneklik sağlar.
3) IDE bağımlılığı yoktur.

POM (Project Object Model) dosyası ile kütüphaneler, eklentiler ve bağımlı kaynaklar kolayca yönetilebilmektedir.
Maven kütüphane dosyalarını kendi repository sunucusunda barındır. Projede kütüphane dosyaları ilk olarak local repository klasoründe arar.
Aradığı yerde bulamazsa kendi sunucularında aramaya başlar. Kendi sunucularında aramaya başlamaz ise sizin tanımladığınız bir adresten sizin local klasörüne indirmeye başlar ve proje içerisinde kullanımız sağlar. Birbirine bağlı olan kütüphane var ise bağımlı olan kütüphaneyi indirme işlemine başlar ve projeyi eklemeyi sağlar.

POM Dosyası proje dokümantasyonu içerir.
Sadece bu dosyaya bakarak proje hakkında bilgi edinebilirsiniz.
POM dosyasından projenin build ve deploy yapılandırmalarını yönetebilirsiniz.
Her Maven projesinin bir Grup id’si, bir Yapı id’si ve bir sürüm numarası vardır.

Mavenin Kurulumu

Maven kurulumunu gerçekleştirebilmek için ilk bakacağımız şey elbette JDK (Java Development Kit)‘dir. Komut satırına java –version yazarak Jdk ya sahip olup olmadığını öğrenebilirsiniz. Sonrasında Maven’in kurulum linkinden gerekli dosyaları bilgisayarımıza indirmemiz gerekmektedir. http://maven.apache.org/download.cgi  . JDK da yapıtlığımız gibi ortam değişkenlerinde kullanıcı değişkenler kısmına MAVEN _HOME olarak yolu üzerinde olması gereklidir.

Yapılan tüm işlemler başarılı bir şekilde gerçekleştirilmiş ise cmd ekranına mvn-version yazarak karşımıza aşağıdaki gibi bir ekran gelecektir.

Maven kurulumundan sonra Maven ile Eclipse’in entegrasyonun yapılması geçecek olursak. Bu engegrasyon için Eclipse Marketplace’den Maven eklentisinin kurulması gerekmektedir. Kurulum işlemin nasıl yapılacağını öğrenmek için aşağıdaki resimleri kullanabilirsiniz.

Kurulum ve entegrasyon aşamaları bittikten sonra proje oluşturmak kısmına geçelim. Proje oluşturmak aynı yeni bir Java projesi oluşturmak gibidir.

Aşağıdaki görseller kullanılarak yeni bir Maven projesi oluşturabilirsiniz.

Group Id ve Artifact Id verilerini girmemiz isteniyor.
Group Id projenin ait olduğu proje grubuna (mywebapp) yazıyoruz.
ArtifactId  projenin ana bölümüdür.
Maven Sürümü  Bu bolümde kullanacağınız maven sürümünü seçiyoruz.

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://mav
en.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.kurukod.ornekwebapp</groupId>
<artifactId>ornekwebapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>ornekwebapp Maven Webapp</name>
<url>http://maven.apache.org</url &gt;
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>ornekwebapp</finalName>
</build>
</project>

Tagların İşlevleri

Project : Mavenin kullanacağı versiyon ve ayarları belirtir.
Model Version: Maven versiyonunu belirtir.
Packaging: Projede paketleme türünü belirtir. EAR, JAR gibi değerleri alabilir.
Name: Proje adını belirlememizi sağlar
URL: Sunucuya göndermek istediğimiz veriyi yazdığımız adrese gönderir.
Depency : Projede kullanılan kütüphane.
Scope : Projede yapılandırma sırasında kullanılması sağlamış oluruz.
Build : Yapılan ayarlar ve kullanılacak eklentiler için bir kısımdır.

Projede özel kütphane kullanmak için proje içerisine bu kütüphane dosyasını ekleyip POM dosyasında tanıtımını yapmalıdır.

<dependency>
<groupid>javax.sql</groupid>
<artifactid>rowset</artifactid>
<version>1.0.1</version>
<scope>system</scope>
<systempath>${basedir}/lib/rowset.jar</systempath>
</dependency> Burada ${basedir},

POM dosyasının bulunduğu dizini belirtir. Yani kök dizindir [3].

Maven Komutları

Clean : Target klasörünün silinmesini sağlar
Validate Target dosyasını silme işlemini yaptıktan sonra hatalı kasımların taranmasını sağlar.
Compile : Derleme işlemini gerçekleştirir.
Package : Proje testlerini yapmasını ve projeyi paketler
Verifty : Paketlerin geçerliliğinin kontrolünün yapılmasını sağlar
Install : Proeyi repository sunucusuna yükleme işlemini yarar
Deploy : Projenin uygulama sunucunsa gönderme işlemini gerçekleştirir.

Komutlar birbiri üzerine gömülüdür. Deploy komutunu çalıştırarak tüm kodların sırayla çalışmasını sağlar. Yazılan bu komutları komut penceresine yazabilirsiniz. Aşağıda Maven ile oluşutrulmuş 2 adet Jsp kod örneği görülmektedir.

İçerik Hazırlayan: Onur Dinç

Kaynaklar

[1]  https://mvnrepository.com/

[2] https://maven.apache.org/guides/introduction/introduction-to-repositories.html

[3] https://kurukod.wordpress.com/2015/06/26/maven-nedir-nasil-kullanilir-2/