2013-11-15 3 views
3

У меня есть файл ресурсов с некоторыми токенами, которые нужно заменить файловыми путями, используя задачу java-плагина 'processResources'. Предоставляет ли gradle способ, в котором значение токена является выражением?Gradle: заменить маркеры свойствами проекта

1) SRC/ресурсы/config.properties файл имеет маркер: SRC_ROOT_DIR = @ SRC_ROOT_DIR @

2) build.gradle файл содержит следующее:

processResources{ 
    filter ReplaceTokens, tokens:[SRC_ROOT_DIR: project.projectDir] 
} 

Это бросает исключение говоря : не удалось скопировать файл '..src \ Resources \ config.properties' к' ..build \ ресурсы \ главная \ config.properties'

ответ

6

Запуск фрагмент с --stacktrace дал мне:

... 

Caused by: org.gradle.api.GradleException: Could not copy file 
'C:\bss\zz\src\main\resources\config.properties' 
to 'C:\bss\zz\build\resources\main\config.properties'. 

... 

Caused by: java.lang.ClassCastException: 
java.io.File cannot be cast to java.lang.String 
... 

Изменение project.projectDir к project.projectDir.name (или пути) решил его:

filter ReplaceTokens, tokens:[SRC_ROOT_DIR: project.projectDir.path]

+2

+1 '--stacktrace' - твердые советы. Я забыл об этом, выяснилось, что мой скрипт собирал другую переменную 'xxxxxx $ x' (с паролем). –

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