Как заменить токен в файле с помощью gradle?

#gradle #token

Вопрос:

В папке, где присутствует файл сборки gradle, у меня есть файл с именем «файл», и в нем есть следующие данные :

 @tokenval@
 

В файле сборки у меня написано следующее :

 import org.apache.tools.ant.filters.*
task processResources  {
    filesMatching('file') {
        filter(ReplaceTokens, tokens: [tokenval:  1])
    }
}
 

Я хочу заменить @tokenval@ в файле на 1. Но это дает следующую ошибку, когда я запускаю процесс с использованием ресурсов gradle-q :

 A problem occurred evaluating root project 'gradle learning experiments'.
> Could not find method filesMatching() for arguments [file, build_biz3ipxhnv8xkmjuuxur85z50$_run_closure1$_closure2@7d811b8] on task ':processResources' of type org.gradle.api.DefaultTask.
 

Ответ №1:

Это скопирует входные file данные в build/ каталог проекта и заменит токен в копии:

 import org.apache.tools.ant.filters.*
task processResources(type: Copy)  {
    from('file') {
        filter(ReplaceTokens, tokens: [tokenval:  '1'])
    }
    into(buildDir)
}