2016-11-10 2 views
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

BUILD УСПЕШНЫЙ

Общее время: 1.07 сек.

Странно, что задача печатает true, но файл gradle.properties не оценивает одинаковые условия правильно. Может ли кто-нибудь помочь мне в этом?

+1

Вы уверены, что вы можете использовать код в 'gradle.properties'? Я думал, что это действительно простой старый файл свойств. – Henry

+0

Я действительно не уверен. В нем четко не указано, могу ли я использовать какой-то код там или нет. Если я не буду использовать код там, тогда я создам новый вопрос, чтобы удовлетворить мои трудности. Мне нужно иметь возможность выбирать расположение заголовков, необходимых для компиляции кода, в зависимости от свойства системной системы, определенного для собственной модели Gradle. –

+2

'gradle.properties' - это файл свойств с парами« ключ = значение ». Вы не можете поставить туда отличный код –

ответ

Смежные вопросы