Gradle插件读取秘密(api-key,密码)属性(像Android插件的buildConfigField)



是否有任何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@(使用filterReplaceTokens)或${API_KEY}(使用expand)。

例如:

processResources {
    filter(ReplaceTokens, tokens: [API_KEY: apiKey])
}

将子字符串@API_KEY@替换为您在任何资源文件中的实际API密钥。

作为我之前回答的替代方案,您可以编写一个使用CodeModel的自定义Gradle任务。下面是一个例子

最新更新