Risposte:
La differenza sta nel fatto che ./gradlew
indica che stai usando un wrapper gradle. Il wrapper è generalmente parte di un progetto e facilita l'installazione del gradle. Se si utilizza Gradle senza il wrapper, è necessario installarlo manualmente, ad esempio su un Mac brew install gradle
e quindi richiamare Gradle utilizzando il gradle
comando. In entrambi i casi si utilizza Gradle, ma il primo è più conveniente e garantisce la coerenza della versione su macchine diverse.
Ogni wrapper è legato a una versione specifica di Gradle, quindi quando si esegue per la prima volta uno dei comandi sopra per una data versione di Gradle, scaricherà la distribuzione Gradle corrispondente e la utilizzerà per eseguire la build.
Questo non significa solo che non è necessario installare manualmente Gradle, ma si è sicuri di utilizzare anche la versione di Gradle per cui è stata progettata la build. Questo rende le tue build storiche più affidabili
Maggiori informazioni qui - https://docs.gradle.org/current/userguide/gradle_wrapper.html
Inoltre, Udacity ha un video pulito e di alto livello che spiega il concetto di gradle wrapper - https://www.youtube.com/watch?v=1aA949H-shk
gradlew
è un wrapper (carattere w) che usa gradle
.
Under the hood gradlew
esegue tre cose principali:
gradle
versione correttagradle
un'attivitàUsando Gradle Wrapper possiamo distribuire / condividere un progetto a tutti per usare la stessa versione e le funzionalità di Gradle (compilare, costruire, installare ...) anche se non è stato installato.
Per creare una corsa wrapper:
gradle wrapper
Questo comando genera:
gradle-wrapper.properties
conterrà le informazioni sulla distribuzione Gradle