无法在 gradle 中配置属性文件

Posted

技术标签:

【中文标题】无法在 gradle 中配置属性文件【英文标题】:Can't configure properties-file in gradle 【发布时间】:2020-04-26 08:27:13 【问题描述】:

所以我试图在我的 Kotlin 代码中访问令牌密钥,但它不允许我导入 BuildConfig。

在我的 main() 中,我有:

val client: DiscordClient = DiscordClientBuilder(BuildConfig.TOKEN_KEY).build()

BuildConfig 在 IntelliJ 中是红色的。

我的build.gradle如下:

defaultConfig 
    buildConfigField("String", "TOKEN_KEY", apikeyProperties['TOKEN_KEY'])

我到处都看到 *** 帖子,他们希望 defaultConfig 在 android 中,但我不是在制作 Android 应用程序。

我的令牌密钥位于根目录下名为apikey.properties 的文件中,该文件已添加到.gitignore。 文件内容:

TOKEN_KEY="token_value"

【问题讨论】:

【参考方案1】:

BuildConfig 是一个由 Android Gradle 插件生成的类,因此它不是 Gradle 标准特征集的一部分。

在构建时,Gradle 会生成 BuildConfig 类,以便您的应用代码可以检查有关当前构建的信息。

(来自:Share custom fields and resource values with your app's code)

由于您没有使用 Android 插件,因此该类不会生成并且在 IJ 中是红色的。

您有以下选择:

使用您的源代码部署属性文件并在运行时相应地读取它 查看this answer 到问题Generate a Java class using Gradle for Java plugin。它提到了用于非 Android 项目的替代 gradle-buildconfig-plugin。

【讨论】:

以上是关于无法在 gradle 中配置属性文件的主要内容,如果未能解决你的问题,请参考以下文章

配置gradle :将properties文件转换为扩展属性

配置gradle :将properties文件转换为扩展属性

将系统属性与 proguard 配置文件一起传递给 gradle proguardFile 属性

如何在gradle中配置插件属性

firebase 无法解析 android 应用程序模块的 gradle 配置

Android Gradle 插件DexOptions 配置 ④ ( additionalParameters 属性配置 | 使用 BuildType 配置多 dex 机制 )