The gradle wrapper is essentially a portable version of gradle. There's 2 scripts,
gradlew.bat, which handle platform dependence issues. These invoke, and pass arguments to the wrapper jar, which populates the
.gradle directory, with settings, and the actual gradle binary (downloads it if it's not there). You may be asking, what's the point of this? Why can't I use the local installation I just spent ages installing? Well, as I mentioned before, the wrapper is a portable version of gradle, and that's important, because portability is a huge bonus on collaborative projects. It's very useful to be able to fork a project, and being able to build it without needing to manually install a bunch of third party dependencies.