Ank*_*ham 3 java intellij-idea gradle build.gradle
我有一个变量,例如 myVar,在 build.gradle 中定义。我想在某个 .java 文件中访问此变量,该文件是同一项目的一部分。我知道我们可以在 android 中使用buildTypes
block 来做到这一点。但我在IntelliJ IDEA中有一个非android项目,所以无法使用它。我确实遇到了一个插件https://github.com/mfuerstenau/gradle-buildconfig-plugin它可以让我做到这一点。但我不想依赖第三方插件。我还了解了如何通过将值设置为系统属性然后使用 .java 在 .java 中访问它来实现此目的System.getenv()
。但是,我不想改变系统级的东西。知道如何做到这一点吗?
将此变量值存储到由 复制的某个属性文件(例如)中processResources
,并使用 ClassLoader 从 Java 代码加载属性文件。
例如:
在 中src/main/resources/foo.properties
,添加以下行:
zimboom=${blabla}
Run Code Online (Sandbox Code Playgroud)
在您的构建文件中,添加以下配置:
def myVar = 'hello';
processResources {
fileMatching('foo.properties') {
expand([blabla: myVar])
}
}
Run Code Online (Sandbox Code Playgroud)
在 Java 源文件中,要获取值,请使用
Properties properties = new Properties();
properties.load(MyClass.class.getResourceAsStream("/foo.properties");
String zimboom = properties.getProperty("zimboom");
Run Code Online (Sandbox Code Playgroud)