Как использовать переменную, определенную в build.gradle в файле .java - PullRequest
0 голосов
/ 02 января 2019

У меня есть переменная, скажем, myVar, определенная в build.gradle.Я хочу получить доступ к этой переменной в некотором файле .java, который является частью того же проекта.Я знаю, что мы можем сделать это в Android с помощью блока buildTypes.Но у меня есть не андроидный проект в IntelliJ IDEA, поэтому я не могу его использовать.Я наткнулся на плагин https://github.com/mfuerstenau/gradle-buildconfig-plugin, который позволяет мне это делать.Но я не хочу полагаться на сторонний плагин.Я также узнал о достижении этого путем установки значения в свойствах системы и последующего доступа к нему в .java с помощью System.getenv().Однако я не хочу менять материал на системном уровне.Есть идеи как это сделать?

1 Ответ

0 голосов
/ 02 января 2019

Сохраните значение этой переменной в некотором файле свойств (например), который копируется processResources, и загрузите файл свойств из кода Java, используя ClassLoader.

Например:

В 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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...