如果在Gradle脚本中使用else

如果在Gradle脚本中使用else,gradle,build.gradle,gradle.properties,Gradle,Build.gradle,Gradle.properties,我在格拉德尔有一种非常奇怪的行为,我找不到摆脱它的方法。在我的gradle.properties文件中,我使用以下检查条件: //gradle.properties if ( "${System.Property['DATABASE_DIR']}".compareTo('swdb') == 0 ) { PROJECT_DATABASE_PATH=../database/swdb/include } else { PROJECT_DATABASE_PATH=../d

我在格拉德尔有一种非常奇怪的行为,我找不到摆脱它的方法。在我的
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\u DIR=swdb

真的

../database/include/

:printProperties最新

建设成功

总时间:1.07秒


很奇怪,任务打印为true,但
gradle.properties
文件不能正确计算相同的条件。有人能帮我吗?

您的代码将在
init.gradle
脚本中执行

您可以在此处找到文档:


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

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

您可以在此处找到文档:


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

是否确实可以在
gradle.properties
中使用代码?我认为它实际上只是一个普通的旧属性文件。我真的不确定。关于我是否可以在其中使用一些代码,没有明确的文档记录。如果我不应该在那里使用代码,那么我将创建一个新问题来解决我的困难。我需要能够根据本机Gradle模型的命令行定义的系统属性选择编译代码所需的标题位置。
Gradle.properties
是一个具有
key=value
对的属性文件。您不能将groovy代码放入其中。您确定可以在
gradle.properties
中使用代码吗?我认为它实际上只是一个普通的旧属性文件。我真的不确定。关于我是否可以在其中使用一些代码,没有明确的文档记录。如果我不应该在那里使用代码,那么我将创建一个新问题来解决我的困难。我需要能够根据本机Gradle模型的命令行定义的系统属性选择编译代码所需的标题位置。
Gradle.properties
是一个具有
key=value
对的属性文件。你不能把groovy代码放在那里