繁体   English   中英

如何从 Java 访问 Gradle 额外属性?

[英]How to access Gradle extra properties from Java?

我正在为我的应用程序进行一些浓缩咖啡测试,并且我正在与我的测试中的真实 API 进行交互。 所以,我试图从一些环境变量中读取这些 API 凭据:

假设我正在使用 Netflix API。 我在 MAC 上的bash_profile声明凭据:

export NETFLIX_ID='123'
export NETFLIX_TOKEN='xxx'
launchctl setenv NETFLIX_ID $NETFLIX_ID
launchctl setenv NETFLIX_TOKEN $NETFLIX_TOKEN

现在在 Gradle 上,我创建了一些额外的属性,如下所示:

ext {
  netflixId = System.getenv("NETFLIX_ID")
  netflixToken = System.getenv("NETFLIX_TOKEN")
}

如果我打印netflixIdnetflixToken则凭据打印正确,这意味着System.getenv()正在工作。

我现在要做的是从 Java 代码中读取这些额外的属性。 你知道有没有办法做到这一点? 或更好的方法? 任何帮助,将不胜感激

您可以将环境变量的值构建到您的应用程序中。 您可以将它们放在build.gradle构建配置字段中:

android {
    defaultConfig {
        buildConfigField "String", "NETFLIX_ID", "\"" + System.getenv('NETFLIX_ID') + "\""
    }
}

然后这些值最终会出现在与该 gradle 模块的 AndroidManifest 包对应的包中的编译时生成的BuildConfig类中,然后您可以使用BuildConfig.NETFLIX_ID来使用该值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM