Ответ 1
С закрытием groovy, если вы предпочитаете ant внешний:
filter {
line -> line.replace('${version}', version)
}
Как мне отфильтровать файл res/values /strings.xml?
Что-то вроде:
<resources>
<string name="version_name">${version}</string>
...
${version}
будет расширен до значения version
из файла build.gradle
С закрытием groovy, если вы предпочитаете ant внешний:
filter {
line -> line.replace('${version}', version)
}
Вы можете использовать ReplaceTokens с помощью метода фильтра, если у вас есть ваш токен в следующем формате: @[email protected]
Итак, если ваш файл выглядит так:
<resources>
<string name="version_name">@[email protected]</string>
...
то вы можете сделать:
import org.apache.tools.ant.filters.ReplaceTokens
def version = '1.0'
processResources{
filter(ReplaceTokens, tokens: ['version': version])
}
Вы можете сделать это для любой задачи, поддерживающей методы фильтрации (которая выглядит как любая задача, которая расширяет AbstractCopyTask
).
Я не уверен, как вы это сделаете, если хотите сохранить формат ${token}
. Возможно, вы сможете использовать другой фильтр или установить фильтр на ReplaceTokens. Похоже, что в ant вы можете установить токены начала и конца.