Я пытаюсь использовать встроенный механизм Grails для загрузки внешних файлов конфигурации (* .groovy и * .properties) за пределами развернутого WAR-файла. Документация подразумевает, что это всего лишь случай установки grails.config.locations
с соответствующими линиями classpath:
или file:
.grails/внешняя конфигурация/grails.config.locations - абсолютный файл пути «Не существует»?
Я настроил Config.groovy с:
String externalConfigLocation = System.getProperty("SYSTEM_PROPERTY_KEY")
if (!grails.config.locations || !(grails.config.locations instanceof List)) {
grails.config.locations = []
}
if (classpathExternalConfigLocation) {
String pathToResource = "\"file:${basedir}" + File.separator + externalConfigLocation+"\""
print "Loading external configuration file: ${pathToResource}\n"
grails.config.locations << pathToResource
}
Однако это не работал, с сообщениями об ошибках, указывающие на файл «не существует». Тем не менее, печать абсолютного пути, хранящегося в grails.config.locations
, указывает на это. Я попробовал несколько комбинаций:
classpath:configurationFile.properties
file:c:\path_to_file\configurationFile.properties
c:\path_to_file\configurationFile.properties
, но во всех этих случаях файл не может быть найден.
Очень странно - советую оценить. Или предложения по отладке.
Благодарим за это. – Alex
Трюк состоял в том, чтобы использовать grails.config.locations << "classpath:" + classpathExternalConfigLocation и обеспечить, чтобы classpath eclipse/STS указывал на папку, в .classpath файл. Classpath: потенциально сложнее отлаживать, но стоит для относительных путей к файлам –
Alex