Как объединить файлы свойств в Gradle? - PullRequest
0 голосов
/ 04 марта 2020

У меня есть задача ant, которая объединяет 2 файла свойств в один файл свойств.

base.config содержит большинство свойств, а override.config содержит одно или несколько свойств, которые изменяют значение в base.config

<!--Combine the base.config and override.config together to create a properties file-->
<target name="generateProperties" depends="init">
    <property prefix="app.properties" file="override.config"/>
    <property prefix="app.properties" file="base.config"/>
    <echoproperties destfile="${build.dir}/combined.properties">
        <propertyset>
            <propertyref prefix="app.properties"/>
            <mapper type="glob" from="app.properties.*" to="*"/>
        </propertyset>
    </echoproperties>
</target>

Как сделать то же самое в Gradle (без импорта задачи муравья)?

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Существует задача WriteProperties , которая может надежно сохранить свойства.

Затем вам просто нужно передать свойства таким образом, чтобы база была переопределена.

например,

task generateProperties(type: WriteProperties) {
    Properties combinedProperties = new Properties()
    File baseProperties = file('base.config')
    baseProperties.withInputStream {
        combinedProperties.load(it)
    }
    File overrideProperties = file('override.config')
    overrideProperties.withInputStream {
        combinedProperties.load(it)
    }
    properties = combinedProperties
    outputFile = file("$buildDir/combined.properties")
}
0 голосов
/ 05 марта 2020

Есть (5) свойство 'scopes', которое Gradle имеет для поиска свойств. Это:

  • Project сам экземпляр
  • Дополнительные свойства
  • Расширения
  • Условные обозначения
  • Задачи
  • Родитель проекта (рекурсивный поиск с вышеприведенным)

Более подробный обзор можно прочитать здесь: https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html#properties

Поиск в Gradle для поиска свойств в этой последовательности. Таким образом, вы можете определить базовые свойства ниже в цепочке и обеспечить переопределения выше в цепочке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...