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'對的屬性文件。你不能把常規代碼放在那裏 –