在我的 Android 项目中,我可以按如下方式指定 Gradle 常量:
buildConfigField 'Boolean', 'analyticsEnabled', 'false'
并像这样在我的 Android 应用程序中访问它们:-
public boolean isAnalyticsEnabled() {
return BuildConfig.analyticsEnabled;
}
如何在 Java 库 Gradle 构建脚本中获得相同的功能?
更准确地说,我正在开发一个自定义注释处理器作为我的 Android 应用程序所依赖的纯 Java 项目(库)。
我想在我的 Java Gradle 构建文件中定义可由我的注解处理器访问的常量。
如果这是可能的,那么我该如何实现呢?
最佳答案
您可以使用 these plugins 之一.例如。 de.fuerstenau.buildconfig
:
build.gradle
:
plugins {
id 'de.fuerstenau.buildconfig' version '1.1.8'
}
buildConfig {
buildConfigField 'String', 'QUESTION', '"Life, The Universe, and Everything"'
buildConfigField 'int', 'ANSWER', '42'
}
然后获取一个 BuildConfig
类,例如:
public final class BuildConfig
{
private BuildConfig () { /*. no instance */ }
public static final String VERSION = "unspecified";
public static final String NAME = "DemoProject";
public static final String QUESTION = "Life, The Universe, and Everything";
public static final int ANSWER = 42;
}
如果您正在使用 Kotlin 并希望生成 Kotlin 版本 BuildConfig
,请查看 io.pixeloutlaw.gradle.buildconfigkt
如果不喜欢这个想法,你可以做的是资源过滤:
build.gradle
:
processResources {
expand project.properties
}
gradle.properties
(这些值与 project.question
和 project.answer
相同):
question=Life, The Universe, and Everything
answer=42
src/main/resources/buildconfig.properties
:
question=${question}
answer=${answer}
然后只需将 buildconfig.properties
读入您应用中的 Properties
并使用这些值。
关于java - 如何在 Gradle Java 库项目构建脚本中指定 buildConfigField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46805846/