如何在settings.gradle中读取keystore.properties内的密钥?
在settings.gradle中读取properties文件的解决方案
你遇到的问题根源在于:settings.gradle执行阶段,rootProject的类型是DefaultProjectDescriptor,不是完整的Project实例,所以没有file()方法,这就是调用rootProject.file()报错的原因。
要在settings脚本里读取根目录下的keystore.properties,可以直接用settings脚本内置的settingsDir变量(它指向根项目的目录)来构造文件路径,具体代码如下:
// 基于settingsDir构造keystore.properties的文件对象 def keystorePropertiesFile = new File(settingsDir, "keystore.properties") def keystoreProperties = new Properties() // 先检查文件是否存在,避免文件缺失时抛出异常 if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) }
之后你就可以在repositories块中使用读取到的密钥了,比如:
repositories { maven { url = "你的私有Maven仓库地址" credentials { username = keystoreProperties.getProperty("repo_username") password = keystoreProperties.getProperty("repo_password") } } }
这种方式既不用把密钥放到已版本化的gradle.properties,也不需要手动添加命令行参数,完全符合你的需求。
内容的提问来源于stack exchange,提问作者JonasVautherin
相关产品推荐
相关产品推荐

