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