Lorsque j'exécute cette tâche:
task tmpTask << {
project.properties.each {println " $it"}
}
Je vois:
org.gradle.Java.home=/usr/lib/jvm/Java-6-Oracle
Mais comment utiliser cette variable? J'ai essayé les deux:
task tmpTask << {
println org.gradle.Java.home
println project.properties.org.gradle.Java.home
}
Mais rien de tout cela ne fonctionne. La première impression donne une erreur:
Could not find property 'org' on task ':tmpTask'.
tandis que le second échoue avec:
Cannot get property 'gradle' on null object
project.properties
est un Map<String, ?>
Vous pouvez donc utiliser
project.properties['org.gradle.Java.home']
Vous pouvez également utiliser la méthode property () (mais qui recherche dans des emplacements supplémentaires):
project.property('org.gradle.Java.home')
Pour le bénéfice de quelqu'un d'autre. Si la propriété que vous définissez n'est pas séparée par des points, vous pouvez simplement vous y référer directement.
Dans votre gradle.properties
:
myProperty=This is my direct property
my.property=This is my dotted property with\t\t tabs \n and newlines
Dans votre build.gradle
:
// this works
println myProperty
println project.property('my.property')
// this will not
println my.property
gradle.properties
Ajouter un accessoire au fichier gradle.properties
hi1=hi
Ajoutez -Pxxx fin de ligne de commande.
./gradlew -q readPropertiesTask -Phi2=tete
Plusieurs propriétés:
./gradlew -q readPropertiesTask -Phi2=tete -Phi3=rr
val propFromFile = project.properties["hi1"]
println("propFromFile = $propFromFile")