このタスクを実行すると:
task tmpTask << {
project.properties.each {println " $it"}
}
そうですか:
org.gradle.Java.home=/usr/lib/jvm/Java-6-Oracle
しかし、この変数の使い方は?私は両方を試しました:
task tmpTask << {
println org.gradle.Java.home
println project.properties.org.gradle.Java.home
}
しかし、これはどれも機能しません。最初の印刷でエラーが発生する:
Could not find property 'org' on task ':tmpTask'.
2番目が失敗する間:
Cannot get property 'gradle' on null object
project.properties
はMap<String, ?>
だからあなたは使うことができます
project.properties['org.gradle.Java.home']
property() メソッドを使用することもできます(ただし、追加の場所を検索します)。
project.property('org.gradle.Java.home')
他の人の利益のために。定義するプロパティがドットで区切られていない場合は、直接参照できます。
あなたのgradle.properties
:
myProperty=This is my direct property
my.property=This is my dotted property with\t\t tabs \n and newlines
あなたのbuild.gradle
:
// this works
println myProperty
println project.property('my.property')
// this will not
println my.property
gradle.properties
からプロップをファイルに追加しますgradle.properties
hi1=hi
コマンドラインの最後に-Pxxxを追加します。
./gradlew -q readPropertiesTask -Phi2=tete
いくつかのプロパティ:
./gradlew -q readPropertiesTask -Phi2=tete -Phi3=rr
val propFromFile = project.properties["hi1"]
println("propFromFile = $propFromFile")