Было бы проще ответить, если бы вы указали свой конкретный вариант использования.
Также это поможет узнать ваше приложение, например, это приложение Spring (Boot)? В этом случае, вероятно, было бы более разумно использовать Spring Profiles для этого.
В любом случае, вот возможное решение:
Создайте файл свойств и поместите его в папку ресурсов. Определите заполнитель, который может заменить gradle. Например, файл "myapp.properties"
greetingText=@greeting@
Добавьте токен (текст между '@') в ваш gradle.properties:
greeting=Hello world!
Заставьте build.gradle заменить токен значением из gradle.properties, настроив задачу processResources:
processResources {
inputs.file file('gradle.properties')
filter(
ReplaceTokens,
tokens: [
greeting: project.ext.greeting
]
)
}
Во время выполнения загрузить значение из файла свойств:
public String getGreeting() throws IOException {
try (
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResource("myapp.properties").openStream();
) {
Properties appProps = new Properties();
appProps.load(inputStream);
return appProps.getProperty("greetingText");
}
}