Переопределение конфигурации Grails для подключаемых модулей

Я пытаюсь понять, как отделить конкретную конфигурацию развертывания от моего приложения Grails 3. В Grails 2 я мог настроить поиск местоположения конфигурации, который загружал бы файл конфигурации моего разработчика. А в Grails 3 я обнаружил, что могу предоставить дополнительные конфигурации Spring при запуске приложения, то есть:

./grailsw -Dspring.config.location=classpath:application.yml,file:///home/nigel/src/app/dev.yml run-app

Однако это не работает, если я использую плагины, как показано ниже, где он просто использует конфигурацию в grails-app/conf/application.yml:

./grailsw -Dspring.config.location=classpath:application.yml,file:///home/nigel/src/app/dev.yml url-mappings-report

Итак, мой вопрос: как предоставить Grails файлы конфигурации для развертывания/разработки, чтобы он работал с плагинами Grails.


person Nigel    schedule 07.07.2017    source источник


Ответы (2)


Для Grails 3 вы можете использовать подключаемый модуль внешней конфигурации. И настройте места конфигурации.

grails.config.locations = ["classpath:myconfig.groovy"]
person Sudhir N    schedule 07.07.2017
comment
Спасибо, я могу получить такую ​​работу, если задам параметр grails.config.locations в файле application.yml, а не передам его как параметр JVM, что было бы наиболее гибким подходом. Итак, это оставляет меня с вопросом, что такое подстановка переменных, которую я должен использовать, чтобы указать на домашний каталог проекта? Я пробовал ${project.home} и ${grails.home}, но ни один из них не работает. В крайнем случае я мог бы использовать путь к классам, как было предложено, но наличие внешней конфигурации в пути к классам кажется нелогичным. - person Nigel; 09.07.2017
comment
При запуске войны нет домашнего каталога проекта, вы не должны использовать домашний каталог проекта, а скорее файл либо в пути к классу, либо в домашнем каталоге пользователя, либо где-то внутри базового каталога каталины, и все это поддерживается, прочитайте документы плагин - person Sudhir N; 10.07.2017

Попробуйте использовать для этой задачи подключаемый модуль Grails 3 внешней конфигурации.

Этот подключаемый модуль имитирует способ Grails 2 для обработки внешних конфигураций, определенных в grails.config.locations.

Шаги:

  1. Добавьте зависимость к файлу build.gradle.

  2. Создайте новый сценарий локальной конфигурации Groovy и добавьте конфигурацию, которую вы хотите переопределить.

  3. Добавьте свойство внешней конфигурации в свой application.yml или application.groovy и укажите в нем путь к локальному файлу конфигурации.

Вот и все.

person Ankit Kumar Singh    schedule 09.07.2017