Переопределите grails.serverURL и специфичные для приложения параметры grails.propname в файле application.properties - PullRequest
2 голосов
/ 25 июня 2009

Мне нужно переопределить grails.serverURL во время выполнения без необходимости заново создавать файл WAR приложения. Я пробовал различные способы установки grails.serverURL в файле application.properties и не могу заставить его работать.

Вот часть среды Config.groovy:

environments {
   prod
   {
      grails.serverURL = "http://nonexistentserver.somecompany.com:8080"
      grails.anotherappspecificURL = "xcc://user:password@server.somecompany.com"
   }

По сути, наш application.properties выглядит так:

grails.env=prod
grails.war.deployed=true
app.grails.version=1.0.4
app.name=myapp

Ниже приведен один из способов, которыми я пытался изменить настройки. Они определены в Config.groovy:

grails.serverURL=http://webserver1.somecompany.com:8080
grails.anotherappspecificURL=xcc://admin:xyzabc123@specificserver.somecompany.com

Буду очень признательна за любую помощь, чтобы заставить это работать без внесения изменений в код!

Ответы [ 3 ]

3 голосов
/ 25 июня 2009

Правильный способ переопределения значений в Config.groovy - использовать внешний файл свойств, см .:

http://grails.org/doc/1.1.x/guide/3.%20Configuration.html#3.4%20Externalized%20Configuration

Укажите файл внешних свойств в Config.groovy, например:

grails.config.locations = [ "classpath:app-config.properties"]

В файле свойств (может храниться в grails-app / conf /) указать значение переопределения:

grails.serverURL=http://webserver1.somecompany.com:8080

В любое время, когда вам нужно изменить serverURL после развертывания войны, просто измените файл свойств в /WEB-INF/classes/app-config.properties и перезагрузите контекст.

0 голосов
/ 21 марта 2012

Я обнаружил, что внешняя конфигурация немного сложна (по состоянию на Grails 1.3.7). Вы должны поместить свой файл в grails.config.locations в Config.groovy

grails.config.locations << 'classpath:my-config-file.groovy'

Но вы не можете получить доступ к свойствам без добавления другого файла. Я заставил его работать, поместив новый файл конфигурации в grails-app/conf и добавив его в classpath, добавив следующее в scripts/Events.groovy.

eventCompileEnd = {
    ant.copy(todir:classesDirPath) {
      fileset(file:"${basedir}/grails-app/conf/SecurityConfig.groovy")
    }
}

Вы можете найти больше информации на https://stackoverflow.com/a/9789506/1269312

0 голосов
/ 20 октября 2011

Это может не относиться к делу, но я заметил, что в вашем grails отсутствуют кавычки .serverURL

...