0
我在Gradle中遇到了这个非常奇怪的行为,我无法找到出路。在我gradle.properties
文件,我使用这个检查条件:如果其他在Gradle脚本中
//gradle.properties
if ("${System.Property['DATABASE_DIR']}".compareTo('swdb') == 0) {
PROJECT_DATABASE_PATH=../database/swdb/include
}
else {
PROJECT_DATABASE_PATH=../database/include/
}
我创建了一个名为printProperties
新的任务,它看起来像这样。
//build.gradle
task printProperties {
println "${System.properties['DATABASE_DIR']}".compareTo('swdb') == 0
println PROJECT_DATABASE_PATH
}
我得到下面的输出,当我运行printProperties
任务。
$ gradle这个printProperties -DDATABASE_DIR = SWDB
真正
../database/include/
:printProperties UP-TO-DATE
生成成功
总时间:1.07秒
真的很奇怪,任务打印为真,但gradle.properties
文件不能正确评估相同的条件。有人能帮助我吗?
你确定你可以在'gradle.properties'使用的代码?我认为这真的只是一个普通的旧属性文件。 – Henry
我真的不确定。它没有清楚地记录,如果我可以在那里使用一些代码。如果我不应该在那里使用代码,那么我会创建一个新的问题来解决我的困难。我需要能够选择编译代码所需的头文件的位置,具体取决于本地Gradle模型的命令行定义的系统属性。 –
'gradle.properties'是一个带'key = value'对的属性文件。你不能把常规代码放在那里 –