0

我在 Gradle 中有这种非常奇怪的行为,我找不到解决办法。在我的gradle.properties文件中,我使用了这个检查条件:

//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

真的

../数据库/包括/

:printProperties 最新

构建成功

总时间:1.07 秒

gradle.properties任务打印为 true 但文件没有正确评估相同的条件,这真的很奇怪。有人可以帮我吗?

4

1 回答 1

5

您的代码应在init.gradle脚本中进行。

您可以在此处找到文档:https ://docs.gradle.org/current/userguide/init_scripts.html

gradle.properties文件仅适用于键=值对

于 2016-11-10T07:52:40.860 回答