是否有任何gradle函数/插件从特殊配置/属性文件中读取/绑定一些秘密属性(api密钥,密码)?
例如,在android插件中,你可以在~/.gradle/gradle中设置属性。属性文件: apiKey=SUPER_SECRET_VALUE
than in project build.gradle:
android {
buildTypes {
debug {
buildConfigField "String", "API_KEY", apiKey
}
}
}
项目本身使用BuildConfig.API_KEY
字符串常量
是否有类似的解决方案在gradle其他(java)项目?
或者这种方法是错误的,应该使用其他的解决方法?
您总是可以过滤文件。您可以通过复制命令传递资源或源文件,并使用Gradle变量替换标记,如@API_KEY@
(使用filter
和ReplaceTokens
)或${API_KEY}
(使用expand
)。
processResources {
filter(ReplaceTokens, tokens: [API_KEY: apiKey])
}
将子字符串@API_KEY@
替换为您在任何资源文件中的实际API密钥。
作为我之前回答的替代方案,您可以编写一个使用CodeModel的自定义Gradle任务。下面是一个例子