У меня это странное поведение в 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
BUILD УСПЕШНЫЙ
Общее время: 1.07 сек.
Странно, что задача печатает true, но файл gradle.properties
не оценивает одинаковые условия правильно. Может ли кто-нибудь помочь мне в этом?
Вы уверены, что вы можете использовать код в 'gradle.properties'? Я думал, что это действительно простой старый файл свойств. – Henry
Я действительно не уверен. В нем четко не указано, могу ли я использовать какой-то код там или нет. Если я не буду использовать код там, тогда я создам новый вопрос, чтобы удовлетворить мои трудности. Мне нужно иметь возможность выбирать расположение заголовков, необходимых для компиляции кода, в зависимости от свойства системной системы, определенного для собственной модели Gradle. –
'gradle.properties' - это файл свойств с парами« ключ = значение ». Вы не можете поставить туда отличный код –