J'utilise Gradle dans mon projet. J'ai une tâche pour faire une configuration supplémentaire avec ma guerre. J'ai besoin de construire une chaîne à utiliser dans ma tâche, disons que j'ai:
task extraStuff{
doStuff 'org.springframework:spring-web:3.0.6.RELEASE@war'
}
Cela fonctionne bien. Ce que je dois faire, c'est définir la version (en fait déjà définie dans le fichier de propriétés) et l'utiliser dans la tâche comme:
springVersion=3.0.6.RELEASE
task extraStuff{
doStuff 'org.springframework:spring-web:${springVersion}@war'
}
Mon problème est que la version printemps n'est pas reconnue comme variable. Alors, comment puis-je le passer à l'intérieur de la chaîne?
Je pense que le problème peut se poser sur les délimiteurs littéraux de chaîne:
groovy
, donc mettez-les entre guillemets simples ou doubles (par exemple "3.0.6.RELEASE"
);Gstrings
ne sont pas analysés dans des chaînes de guillemets simples (les deux '...'
ou triple '''...'''
ones) si je me souviens bien;Le code sera donc:
springVersion = '3.0.6.RELEASE' //or with double quotes "..."
task extraStuff{
doStuff "org.springframework:spring-web:${springVersion}@war"
}
Si vous développez une application Android en utilisant Gradle, pour déclarer une variable (c'est-à-dire contenant une version de dépendances), vous devez utiliser le mot clé def
comme ci-dessous:
def dependsVersion = '1.2'
dependencies {
compile "groupId:artifactId:${dependsVersion}"
}
J'espère que cela a aidé!
Sur Android il y a en fait 2 possibilités pour y parvenir. Cela dépend vraiment de ce qui convient à vos besoins. Ces deux possibilités ont leurs avantages et leurs inconvénients. Vous pouvez utiliser def
variable ou ext{}
bloquer. La variable def
est géniale car elle vous permet de cliquer sur la variable et pointe exactement où elle est définie dans le fichier par rapport à ext{}
bloc qui ne pointe PAS vers cette variable exacte. D'autre part ext{}
a un bon avantage: vous pouvez référencer des variables à partir de project_name/build.gradle
à project_name/app/build.gradle
ce qui dans certains cas est très utile MAIS comme je l'ai dit si vous cliquez sur cette variable permet de ne dire que dans un seul fichier il ne pointe pas vers la définition de cette variable qui est très mauvaise car cela vous prend plus de temps de recherche si votre dépendance la liste s'allonge.
1) option def qui est probablement la meilleure et vous fait gagner du temps de recherche.
def lifecycle = '2.0.0'
dependencies {
implementation 'androidx.lifecycle:lifecycle-extensions:$lifecycle'
}
2) deuxième bloc ext {}. C'est un peu correct si la liste des dépendances n'est pas énorme.
ext {
lifecycle = '1.1.1'
}
dependencies {
implementation 'androidx.lifecycle:lifecycle-extensions:$lifecycle'
}
) Dans certains cas, si vous souhaitez partager des variables entreproject_name/build.gradle
etproject_name/app/build.gradle
tilisez ext {}
dans nom_projet/build.gradle vous définissez kotlin_shared_variable
:
buildscript {
ext.kotlin_shared_variable = '1.3.41'
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_shared_variable"
}
}
que vous pouvez utiliser dans nom_projet/app/build.gradle
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_shared_variable"
}
et bien sûr, vous pouvez les combiner.