Gradle Wrapper

Anıl Emre Özçelik
Kodcular
Published in
2 min readDec 7, 2019

Bu bölümde sizlere gradle’ın belki de en güzel özelliklerinden birisi olan gradle wrapper hakkında bilgi vereceğim.Güzel bir özellik çünkü bilgisayarınıza gradle kurmadan gradle projelerinizi rahatlıkla çalıştırabiliyorsunuz.

Diyelim ki siz şirketinizde bir gradle projesi üzerinde çalışıyorsunuz.Projenizin gerekli kısımlarını geliştirdikten sonra remote repository’nize push ettiniz.Ekibinize yeni katılan Ahmet arkadaşınız projeyi pull edip üzerinde çalışmak istiyor.Fakat daha önce gradle kullanmadığı için bilgisayarına nasıl kurması gerektiğini bilmiyor,doğru versiyonu kullanıp kullanmadığı konusunda da şüphe duyuyor.Bu durumun sadece Ahmet için değil de birden fazla kişi için oluştuğunu düşünürsek ciddi bir zaman kaybı ortaya çıkıyor.

Gradle Wrapper da bize bu konuda yardımcı oluyor.Ahmet’in veya diğer takım arkadaşlarınızın localine gradle kurmasına gerek kalmadan projeyi pull edip çalıştırabiliyor.Peki bunu nasıl yapacağız.Sizin yapmanız gereken şeyler oldukça kısa ve basit.

Projeniz içerisinde yer alan build.gradle dosyası içerisine aşağıdaki satırları koymak ve sonra da proje ana dizininde bunu çalıştırmak.İşte bu kadar!

task wrapper(type: Wrapper) {
gradleVersion = ‘2.0’
}

Burada task ismini wrapper değil de başka birşey de yapabilirsiniz veya kullanmak istediğiniz versiyonu değiştirebilirsiniz,kısıtlama yok.Şunu unutmayın ki bu taskı sadece 1 kere çalıştırmanız yeterli.Eğer versiyon değişikliği veya herhangi bir konfigürasyonda değişiklik yapmadıysanız tekrar çalıştırmanıza gerek kalmayacak.Task’ı çalıştırdıktan sonra proje dizini altında birkaç yeni klasörün oluştuğunu göreceksiniz.

|-gradle
|--- wrapper
|--- gradle-wrapper.jar
|--- gradle-wrapper.properties
|-gradlew
|-gradlew.bat

Bu klasörleri de versiyon kontrol sisteminize eklemeyi unutmayın! Çünkü takım arkadaşınız projeyi local’ine çektiğinde bu dosyaları aracılığı ile wrapper’ı kullanacak.

$ git clone https://github.com/company-repo/gradle-project.git
$ cd gradle-project

Takım arkadaşınız yukarıdaki komutları çalıştırdı ve projeyi localine çekti.Proje ana dizininde herhangi bir gradle taskını aşağıdaki gibi çalıştırdığında(gradle yerine gradlew komutu kullanacaksınız) ilk başta belirlenmiş olan gradle versiyonu merkez bir server’dan locale indirilecek ve proje bu distribution ile çalışacak.

$ ./gradlew buildDownloading http://services.gradle.org/distributions/gradle-2.0-bin.zip

Eğer herhangi bir değişiklik yapmadıysanız ineceği dizin aşağıdaki gibi olacak.

$HOME_DIR/.gradle/wrapper/dists
Wrapper Workflow

Eğer distribution’ın ineceği dizini değiştirmek isterseniz gradle-wrapper.properties içerisinde yer alan distributionPath’i veya distributionBase’i set edebilirsiniz.Bence değiştirmenize gerek yok.

Gradle Wrapper’ı şuana kadar kullanmadıysanız bence kullanmalısınız.Çünkü wrapper sayesinde ekibinizdeki herkes aynı versiyon ile projeyi build etmiş olacak ve bilgisayarında gradle kurulu olmasına gerek kalmayacak.

İyi günler!

--

--