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ı?
| Özellik | Maven | Gradle |
|---|---|---|
| Dil / Format | XML | Groovy / Kotlin |
| Hız | Yavaş / Orta | Çok Hızlı |
| Esneklik | Kı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.