Różnica między użyciem gradlew i gradle

229

Jaka jest różnica między używaniem gradlewi gradleczy są takie same?

megalucio
źródło

Odpowiedzi:

225

Różnica polega na tym, że ./gradlewoznacza to , że używasz owijarki stopniowej. Owijarka jest na ogół częścią projektu i ułatwia instalację stopnia. Jeśli używasz gradle bez opakowania, musisz go ręcznie zainstalować - na przykład na komputerze Mac, brew install gradlea następnie wywołać gradle za pomocą gradlepolecenia. W obu przypadkach używasz stopniowania, ale ten pierwszy jest wygodniejszy i zapewnia spójność wersji na różnych komputerach.

Każde opakowanie jest powiązane z określoną wersją Gradle, więc kiedy po raz pierwszy uruchomisz jedno z powyższych poleceń dla danej wersji Gradle, pobierze odpowiednią dystrybucję Gradle i użyje jej do wykonania kompilacji.

Oznacza to nie tylko, że nie musisz samodzielnie instalować programu Gradle, ale na pewno będziesz używać wersji Gradle, dla której jest przeznaczona kompilacja. Dzięki temu Twoje historyczne kompilacje są bardziej niezawodne

Przeczytaj więcej tutaj - https://docs.gradle.org/current/userguide/gradle_wrapper.html

Udacity ma także schludne wideo na wysokim poziomie objaśniające koncepcję owijarki stopni - https://www.youtube.com/watch?v=1aA949H-shk

Abhijit
źródło
8
Może źle to czytam, ale dla mnie to brzmi jak czerwona flaga. Wygląda na to, że Gradle nie jest kompatybilny wstecz lub ewoluuje bardzo szybko (i niestabilnie). Co dzieje się z serwerami CI, które nie mają dostępu do Internetu?
Impaler
@TheImpaler Wydaje mi się, że musisz zainstalować wszystkie wymagane wersje Gradle tak, jak zrobiłby to Wrapper, gdyby miał dostęp do Internetu.
Ruslan
46

gradlewto opakowanie (w - znak), które używa gradle.

Pod maską gradlewwykonuje trzy główne rzeczy:

  • Pobierz i zainstaluj poprawną gradlewersję
  • Analizuj argumenty
  • Zadzwoń do gradlezadania

Za pomocą programu Gradle Wrapper możemy rozpowszechniać / udostępniać projekt wszystkim, aby korzystać z tej samej wersji i funkcji Gradle (kompilować, budować, instalować ...), nawet jeśli nie został zainstalowany.

Aby utworzyć uruchomienie opakowania:

gradle wrapper

To polecenie generuje:

gradle-wrapper.properties będzie zawierać informacje o rozkładzie Gradle

yoAlex5
źródło