Hec*_*tor 6 java gradle annotation-processor
在我的Android项目中,我可以指定Gradle常量,如下所示:
buildConfigField 'Boolean', 'analyticsEnabled', 'false'
Run Code Online (Sandbox Code Playgroud)
并在我的Android应用程序中访问它们,如下所示: -
public boolean isAnalyticsEnabled() {
return BuildConfig.analyticsEnabled;
}
Run Code Online (Sandbox Code Playgroud)
如何在Java库Gradle构建脚本中获得相同的功能?
更确切地说,我正在开发一个自定义注释处理器作为我的Android应用程序所依赖的纯Java项目(库).
我想在我的Java Gradle构建文件中定义可由我的注释处理器访问的常量.
如果这是可能的,那么我该如何实现呢?
您可以使用这些插件之一。例如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'
}
Run Code Online (Sandbox Code Playgroud)
然后得到一个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;
}
Run Code Online (Sandbox Code Playgroud)
如果您正在使用 Kotlin 并且想要生成 Kotlin 版本,也BuildConfig请查看。io.pixeloutlaw.gradle.buildconfigkt
如果不喜欢这个想法,你可以做的是资源过滤:
build.gradle:
processResources {
expand project.properties
}
Run Code Online (Sandbox Code Playgroud)
gradle.propertiesproject.question(这些值与和相同project.answer):
question=Life, The Universe, and Everything
answer=42
Run Code Online (Sandbox Code Playgroud)
src/main/resources/buildconfig.properties:
question=${question}
answer=${answer}
Run Code Online (Sandbox Code Playgroud)
然后只需在您的应用程序中读取buildconfig.properties并Properties使用这些值即可。
| 归档时间: |
|
| 查看次数: |
358 次 |
| 最近记录: |