如果在Gradle脚本中也是如此

Mül*_*ler 0 gradle build.gradle gradle.properties

我在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/
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个名为的新任务printProperties,它看起来像这样.

//build.gradle
task printProperties {
    println "${System.properties['DATABASE_DIR']}".compareTo('swdb') == 0
    println PROJECT_DATABASE_PATH
}
Run Code Online (Sandbox Code Playgroud)

运行printProperties任务时,我得到以下输出.

$ gradle printProperties -DDATABASE_DIR = swdb

真正

../database/include/

:printProperties UP-TO-DATE

建立成功

总时间:1.07秒

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

Bip*_*ipi 5

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

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

gradle.properties file仅适用于key = value对