Respostas:
A diferença está no fato de ./gradlew
indicar que você está usando um wrapper gradle. O invólucro geralmente faz parte de um projeto e facilita a instalação do gradle. Se você estivesse usando o gradle sem o wrapper, teria que instalá-lo manualmente - por exemplo, em um mac brew install gradle
e depois chamar o gradle usando o gradle
comando Nos dois casos, você está usando o gradle, mas o primeiro é mais conveniente e garante a consistência da versão em diferentes máquinas.
Cada Wrapper está vinculado a uma versão específica do Gradle; portanto, quando você executa um dos comandos acima para uma determinada versão do Gradle, ele faz o download da distribuição Gradle correspondente e a utiliza para executar a compilação.
Isso não significa apenas que você não precisa instalar o Gradle manualmente, mas também usará a versão do Gradle para a qual a compilação foi projetada. Isso torna suas construções históricas mais confiáveis
Leia mais aqui - https://docs.gradle.org/current/userguide/gradle_wrapper.html
Além disso, o Udacity possui um vídeo limpo e de alto nível que explica o conceito do wrapper gradle - https://www.youtube.com/watch?v=1aA949H-shk
gradlew
é um invólucro (caractere w) usado gradle
.
Sob o capô gradlew
realiza três coisas principais:
gradle
versão corretagradle
tarefaUsando o Gradle Wrapper, podemos distribuir / compartilhar um projeto para todos, para usar a mesma versão e a funcionalidade do Gradle (compilar, construir, instalar ...), mesmo que não tenha sido instalado.
Para criar uma execução de wrapper:
gradle wrapper
Este comando gera:
gradle-wrapper.properties
conterá as informações sobre a distribuição Gradle