Плагин Gradle для чтения секретных (api-key, password) свойств (например, buildConfigField из плагина Android)
Есть ли какая-либо функция / плагин gradle для чтения / связывания некоторых секретных свойств (ключей API, паролей) из специальных файлов конфигурации / свойств?
Например, в плагине Android вы можете установить свойства в файле ~ /.gradle / gradle.properties:
apiKey=SUPER_SECRET_VALUE
чем в проекте build.gradle:
android {
buildTypes {
debug {
buildConfigField "String", "API_KEY", apiKey
}
}
}
И в самом проекте вы используете BuildConfig.API_KEY
строковая константа.
Есть ли похожие решения в Gradle для других (Java) проектов?
Или, может быть, этот подход неправильный и нужно использовать какой-то другой обходной путь?
2 ответа
Вы всегда можете отфильтровать файлы. Вы передаете ресурсы или исходные файлы с помощью команды копирования и заменяете токены, например @API_KEY@
(с filter
а также ReplaceTokens
) или же ${API_KEY}
(с помощью expand
) с переменными Gradle.
Например:
processResources {
filter(ReplaceTokens, tokens: [API_KEY: apiKey])
}
Заменил бы подстроку @API_KEY@
с вашим реальным ключом API в любом из ваших файлов ресурсов.