Эрик, способ, которым мы сделали это, указав системное свойство Java с расположением файла конфигурации, а затем мы берем это в Config.groovy, что-то вроде этого:
if (System.properties["application.config.location"]) {
grails.config.locations = [
"file:" + System.properties["application.config.location"] + "${appName}-config.groovy"
]
}
КакВы можете видеть, что мы устанавливаем только папку, в которой файл находится внутри системного свойства Java, и условно мы говорим, что именем файла должно быть имя приложения + "-config.groovy", но если вам нужно, вы можете указатьвесь путь, включая имя файла внутри системного свойства.
Затем при запуске приложения вы просто устанавливаете переменную следующим образом:
grails -Dapplication.config.location=/Users/eric/ run-app
Как видно из кода, есть ifзаявление, которое запрещает вам искать файл конфигурации, если системная переменная свойства Java не была определена, таким образом вы можете запустить свое приложение, не используя внешний файл конфигурации и просто используя параметры конфигурации, определенные в Config.groovy.
Если вы запускаете свое приложение в Eclipse или IntelliJ, вы передаете эту переменную как переменную JVM.
Эта опция отличается от необходимости изменять путь к классу или включать файл конфигурации в путь к классам, чтобы приложение его подбирало.