Я пытаюсь понять, как работает Wrapper Gradle. Во многих исходных репозиториях я вижу следующую структуру:
projectRoot/
    src/
    build.gradle
    gradle.properties
    settings.gradle
    gradlew
    gradlew.bat
    gradle/
        wrapper/
            gradle-wrapper.jar
            gradle-wrapper.properties
Мои вопросы:
-  Как/когда генерируется 
gradlew/gradlew.bat? Вы должны генерировать их только один раз, когда проект сначала создается, вы генерируете их каждый раз, когда вы совершаете/нажимаете изменения? И как они сгенерированы? -  Тот же вопрос выше, но для файлов 
gradle/wrapper/*(gradle-wrapper.jarиgradle-wrapper.properties)? -  Несколько раз я вижу другие 
*.gradleфайлы внутри каталогаgradle. Каковы эти дополнительные файлы Gradle и что они представляют/делают? Пользовательские плагины? -  В чем разница в свойствах, которые входят в 
settings.gradleпротив того, что должно быть определено внутриgradle.properties?