Я хотел бы создать класс, который поможет мне загружать различные типы свойств (local.properties
, gradle.properties
, $GRADLE_HOME/gradle.properties
, переменные среды, системные свойства и файлы пользовательских свойств (возможно, в других форматах, таких как yml
, xml
и т. д.).
Кроме того, я хотел бы использовать это в своих buildSrc/build.gradle.kts
, settings.gradle.kts
и build.gradle.kts
.
Учтите, что мы используем Gradle 6.+
.
Простая реализация этого класса будет (полная реализация будет намного мощнее):
плагины/свойства/build.gradle.kts:
package com.example
object Properties {
val environmentVariables = System.getenv()
}
Как мы можем успешно импортировать этот класс Properties
во все эти файлы (buildSrc/build.gradle.kts
, settings.gradle.kts
, build.gradle.kts
) и использовать его оттуда? Что-то типа:
println(com.example.Properties.environmentVariables["my.property"])
Можем ли мы сделать это, создав этот класс внутри плагина и применяя его оттуда? Без предварительной компиляции и выпуска плагина? Может быть, что-то вроде:
применить («плагины/свойства/build.gradle.kts»)
Как это будет минимальной реализацией для этого?
Я пробовал разные подходы, но не могу найти способ, который работает с этими тремя файлами в целом.