Je crois que tout ce qui se trouve dans la buildscript {}
sera disponible pour le script de la construction actuelle lui-même et ensuite tous ses sous-projets.
Et pour les propriétés déclarées dans le fichier lui-même en dehors de la section buildscript {}
il ne sera pas immédiatement disponible pour le buildscript du projet lui-même, mais pour tous ses sous-projets.
-
Ainsi, si vous souhaitez déclarer quelque chose et l'utiliser immédiatement pour le buildscript lui-même (current buildscript
et pas seulement les sous-projets buildscript
), les déclarer dans le buildscript {}
pour le projet en cours et a également pour effet secondaire de permettre aux sous-projets de l'utiliser ultérieurement.
-
Si vous souhaitez simplement déclarer quelque chose de manière globale (pour les sous-projets de buildscript
), vous pouvez les déclarer directement en tant que ext {}
dans le projet parent. Le projet parent ne pourra pas les utiliser pour ses propres besoins. buildscript
mais il sera disponible pour tous les sous-projets, qu'ils soient ou non dans le cadre du projet. buildscript
clause.
Par exemple, en projet parent :
ext {
kotlin_version_XX = '1.7.10'
}
buildscript {
ext {
kotlin_version = '1.7.10'
}
// kotlin_version will be available here since declared in buildscript{}
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// will NOT be available here -- error due to kotlin_version_XX declared in project
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version_XX"
}
Et si vous avez un sous-projet :
dependencies {
// both kotlin_version and kotlin_version_XX can be used here, since it was declared in parent project
implementation "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version_XX"
}
buildscript {
// both kotlin_version and kotlin_version_XX can even be used here for subproject's script's use, since it was already declared in parent project
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version_XX"
}