У меня есть некоторые данные в моем gradle.properties
файле:
appVersion=1.4.31
appGroup=com.business
appName=projectName
Я хочу иметь доступ к ним в .java
проекте.Я пытаюсь получить доступ к переменной следующим образом:
@Value("${appVersion}")
private int version;
Однако, когда я пытаюсь запустить приложение из основного класса, я получаю следующую ошибку:
Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'appVersion' in value "${appVersion}"
, которая показываетчто он не может найти правильную переменную.
Попытки решить проблему
Добавление @propertySource
Аннотация
Я пытался добавить это в основной класс @PropertySource(value = "file:build.gradle", ignoreResourceNotFound = true)
который был неудачным.
Внесение изменений в build.gradle
Я попытался сделать следующее, взятое из this StackOverflow ответ:
processResources {
filesMatching('application.properties'){
expand(gradle.properties)
}
}
Какойтакже был неудачным.
Этот ответ ниже
Я сделал то, что было сказано в этом ответе (мне пришлось добавить application.properties
файл), и я получил это сообщение об ошибке:
Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Circular placeholder reference 'appVersion' in property definitions
Я думал, что это может быть перепутано с использованием тех же имен (appVersion = appVersion), поэтому я изменил строку application.properties на
version=${appVersion}
А потом в моем .java
file, я изменил строку на:
@Value("${version}")
private String version;
И получил ошибку:
Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'appVersion' in value "${appVersion}"