繁体   English   中英

如何使用.java文件中build.gradle中定义的变量

[英]How to use a variable defined in build.gradle in .java file

我有一个变量,例如myVar,在build.gradle中定义。 我想在同一项目的一部分.java文件中访问此变量。 我知道我们可以使用buildTypes块在android中做到这一点。 但是我在IntelliJ IDEA中有一个非Android项目,所以不能使用它。 我确实遇到了一个插件https://github.com/mfuerstenau/gradle-buildconfig-plugin ,它可以使我做到这一点。 但是我不想依靠第三方插件。 我还了解了如何通过将值设置为System属性,然后使用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");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM