Как использовать свойства gradle в build.Gradle в

когда я запускаю эту задачу:

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'.

в то время как второй выдает:

Cannot get property 'gradle' on null object

2 ответов


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