Gradle - Genel Bakış
"Gradle is an open source build automation system"
Ant ve Maven, JAVA pazarında önemli bir başarıyı paylaştı. Ant, 2000 yılında piyasaya sürülen ilk yapım aracıdır ve prosedürel programlama fikrine dayalı olarak geliştirilmiştir. Daha sonra, Apache-IVY'nin yardımıyla ağ üzerinden eklentileri ve bağımlılık yönetimini kabul etme yeteneği ile geliştirildi. Ana dezavantaj, derleme komut dosyaları yazmak için bir format olarak XML'dir, hiyerarşik olmak prosedürel programlama için iyi değildir ve XML yönetilemez bir şekilde büyük olma eğilimindedir.
Maven, 2004 yılında tanıtıldı. ANT'den sonra pek çok gelişme ile geliyor. Yapısını değiştirir ve yapı belirtimlerini yazmak için XML kullanmaya devam eder. Maven, kurallara güvenir ve bağımlılıkları ağ üzerinden indirebilir. Maven'in temel faydaları yaşam döngüsüdür. Birden fazla proje için aynı yaşam döngüsünü sürekli takip ederken. Bunun bir esneklik maliyeti vardır. Maven ayrıca bağımlılık yönetiminde bazı sorunlarla karşı karşıyadır. Aynı kitaplığın sürümleri arasındaki çatışmaları iyi idare etmez ve karmaşık özelleştirilmiş derleme komut dosyalarının aslında ANT'ye göre maven'de yazılması daha zordur.
Sonunda Gradle 2012'de ortaya çıktı. Gradle, her iki araçtan da bazı verimli özellikler taşıyor.
Gradle'ın Özellikleri
Aşağıda, Gradle'ın sağladığı özelliklerin listesi yer almaktadır.
Declarative builds and build-by-convention- Gradle, Groovy diline dayalı ayrı Etki Alanına Özgü Dil (DSL) ile kullanılabilir. Gradle, bildirimsel bir dil unsurları sağlar. Bu öğeler aynı zamanda Java, Groovy, OSGI, Web ve Scala için yapı bazında destek sağlar.
Language for dependency based programming - Bildirim dili, yapınızda tam olarak yararlanabileceğiniz genel amaçlı bir görev grafiğinin üstünde bulunur.
Structure your build- Gradle nihayet yapınıza ortak tasarım ilkelerini uygulamanıza izin verir. İyi yapılandırılmış ve bakımı kolay, anlaşılır bir yapı tasarlayabilmeniz için size inşa için mükemmel bir yapı verecektir.
Deep API - Bu API'yi kullanarak, yapılandırmasını ve yürütme davranışını özüne kadar izlemenize ve özelleştirmenize olanak tanır.
Gradle scales - Gradle, basit ve tek proje derlemelerinden çok büyük kurumsal çoklu proje derlemelerine kadar verimliliklerini kolayca artırabilir.
Multi-project builds- Gradle çoklu proje yapılarını destekler ve kısmi yapıları destekler. Bir alt proje oluşturursanız, Gradle bağlı olduğu tüm alt projeleri oluşturmaya özen gösterir.
Different ways to manage your builds - Gradle, bağımlılıklarınızı yönetmek için farklı stratejileri destekler.
Gradle is the first build integration tool- Gradle, ANT görevleriniz, bağımlılıkları yayınlamak ve almak için Maven ve lvy depo altyapısı için tam olarak desteklenir. Gradle ayrıca bir Maven pom.xml dosyasını Gradle betiğine dönüştürmek için bir dönüştürücü sağlar.
Ease of migration- Gradle, sahip olduğunuz herhangi bir yapıya kolayca uyum sağlayabilir. Bu nedenle, Gradle yapınızı her zaman canlı komut dosyası oluşturabileceğiniz aynı dalda geliştirebilirsiniz.
Gradle Wrapper- Gradle Wrapper, Gradle'ın kurulu olmadığı makinelerde Gradle kurulumlarını gerçekleştirmenize izin verir. Bu, sunucuların sürekli entegrasyonu için kullanışlıdır.
Free open source - Gradle açık kaynaklı bir projedir ve Apache Yazılım Lisansı (ASL) altında lisanslanmıştır.
Groovy- Gradle'ın yapı senaryosu Groovy'de yazılmıştır. Gradle'ın tüm tasarımı, katı bir çerçeve olarak değil, bir dil olarak kullanılmaya yöneliktir. Ve Groovy, bazı soyutlamalarla kendi senaryonuzu yazmanıza izin verir. Gradle API'nin tamamı, Groovy dilinde tamamen tasarlanmıştır.
Neden Groovy?
Gradle API'sinin tamamı, Groovy dili kullanılarak tasarlanmıştır. Bu, dahili DSL'nin XML'e göre bir avantajıdır. Gradle, özünde genel amaçlı inşa aracıdır; ana odak noktası Java projeleridir. Bu tür projelerde, ekip üyeleri Java'ya çok aşina olacak ve bir yapının tüm ekip üyeleri için olabildiğince şeffaf olması daha iyidir.
Python, Groovy veya Ruby gibi diller çerçeve oluşturmak için daha iyidir. Groovy'nin seçilme nedeni, Java kullanan kişiler için açık ara en büyük şeffaflığı sunduğu için. Groovy'nin temel sözdizimi Java ile aynıdır. Groovy bunun üzerine çok daha fazlasını sağlar.