Maven ve Gradle: Proje Bağımlılık Yönetimi (Dependency Management)

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16
Maven ve Gradle: Proje İnşa Dünyasının Devleri



1. Bağımlılık Yönetimi (Dependency Management) Nedir?​


Eskiden bir kütüphane kullanmak için internetten .jar dosyasını bulup indirmeniz ve projenize manuel eklemeniz gerekirdi. Üstelik o kütüphane başka bir kütüphaneye ihtiyaç duyuyorsa (transitive dependency) onu da bulmanız lazımdı.

Maven ve Gradle bu süreci şöyle çözer:

Siz sadece kütüphanenin adını ve versiyonunu yazarsınız.

Araç, Merkezi Depo (Central Repository) üzerinden kütüphaneyi ve onun ihtiyaç duyduğu tüm alt kütüphaneleri otomatik indirir.

Tüm ekibi aynı kütüphane versiyonlarında sabitler.

2. Apache Maven: Standartların Gücü​


Maven, 2004'ten beri piyasadadır ve Java dünyasının "de facto" standardıdır. XML tabanlı bir yapılandırma dosyası olan pom.xml (Project Object Model) kullanır.

Yapılandırma: "Convention over Configuration" (Yapılandırma yerine standartlar) ilkesini benimser. Dosya yapısı her Maven projesinde aynıdır (src/main/java, src/test/java).

Öğrenme Eğrisi: Standartları takip ettiğiniz sürece kullanımı çok kolaydır.

Hız: Gradle'a göre biraz daha yavaştır çünkü her seferinde tüm projeyi kontrol etme eğilimindedir.

XML:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.2.0</version>
</dependency>

3. Gradle: Esneklik ve Performans​


Gradle, Maven'ın standartlarını alıp üzerine modern bir esneklik katmıştır. XML yerine Groovy veya Kotlin dillerini (DSL) kullanır. build.gradle dosyası ile yönetilir.

Performans: "Incremental Build" özelliği sayesinde sadece değişen kısımları derler. Maven'dan 2 ila 10 kat daha hızlı olabilir.

Esneklik: Programlanabilir bir yapısı vardır. İnşa sürecine özel scriptler eklemek çok kolaydır.

Okunabilirlik: XML'in kalabalığından kurtulmuş, daha temiz bir sözdizimi sunar.

Kod:
// build.gradle örneği
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web:3.2.0'
}

4. Maven mı, Gradle mı?​


ÖzellikMavenGradle
Dil / FormatXMLGroovy / Kotlin
HızYavaş / OrtaÇok Hızlı
EsneklikKısıtlı (Standart odaklı)Çok Yüksek (Özel tasklar)
PopülerlikÇok Yaygın (Kurumsal)Yaygın (Android & Modern Web)

5. Build Lifecycle (İnşa Döngüsü)​


Her iki araç da projenizi şu aşamalardan geçirir:

Compile: Kodlar derlenir.

Test: Birim testler (JUnit vb.) çalıştırılır.

Package: Kodlar .jar veya .war haline getirilir.

Install: Paketi yerel deponuza (local repo) kopyalar.



Sonuç

Eğer standartlara bağlı kalmak ve basit bir yapı kurmak istiyorsanız Maven harikadır. Ancak devasa bir projeniz varsa, inşa süresini (build time) kısaltmak istiyorsanız veya özel otomasyon senaryolarına ihtiyacınız varsa Gradle kesinlikle doğru tercihtir. Modern dünyada her iki aracı da bilmek bir Java geliştiricisi için zorunluluktur.
 
Geri
Üst