Gradle Nedir?

Gradle bir inşa aracıdır (build tool), ancak buna yazılımınızı tanımlamak veya modellemek için bir araç olarak da bakabilirsiniz. Yani Gradle, yazılım projenizin nasıl yapılandırıldığını açıklamak için bir dil veyahut “domain-specific language” (DSL) gibi bir dil sunar. Örneğin, Java ile yazılmış, birden fazla Java kütüphanesinden veya bileşeninden oluşan bir uygulama düşünebilirsiniz. Açıklamayı (description) Gradle’ın DSL’sinde bir kez yaptıktan sonra, bu model, yazılımı geliştirmenize ve son uygulamayı elde etmek için yazılımı oluşturmanıza yardımcı olacak araçlarla yorumlanabilir. Bu araçlar (tools), uygulamayı oluşturabilen veya uygulama için testler çalıştırabilen ve geliştirme (development) ve dağıtım hattınızdaki (deployment pipeline) diğer otomasyon görevlerini gerçekleştirebilen Gradle’ın kendisidir.

Ancak IDE gibi diğer araçlar da bu modeli okuyabilir. Örneğin IntelliJ IDEA, projenizi açıklayan modeli okumak için Gradle’ı kullanabilir ve ardından projeyi IDE’de yapılandırılmış bir şekilde size gösterebilir ve size, farklı projelerin sınıfları arasında gezinme (navigating) gibi ek araç desteği verebilir. Bu nedenle Gradle’a öncelikle yazılım projenizin yapısını tanımlayan bir araç olarak bakmak ve bunu Gradle’ın sunduğu DSL ile nasıl yapacağınızı öğrenmek yararlı olacaktır. Teknik olarak Gradle’ın DSL’i bir Java API‘sidir, dolayısıyla Kotlin, Groovy veya Java’nın kendisi gibi herhangi bir JVM tabanlı dil, potansiyel olarak bir yazılım projesini Gradle terimleriyle tanımlamak için kullanılabilir. Bunu kolaylaştırmak için Gradle, DSL’nin Kotlin versiyonunu ve DSL’nin Groovy versiyonunu sunuyor. Bu temel olarak Gradle’a özgü yapıların yanında, Gradle’ı genişletmek veya özelleştirmek için Kotlin veya Groovy dilinin herhangi bir aracını kullanabileceğiniz anlamına gelir.