Я предполагаю, что вы делаете что-то подобное в вашем DataSource.groovy
файле:
def db = new groovy.util.XmlParser().parse("connection.xml")
Простой и грязный обходной путь, попытайтесь поймать его так:
try {
def db = new groovy.util.XmlParser().parse("connection.xml")
} catch (Exception e ) {println "Bad timing"}
В своих проектах я использую что-то вроде этого:
environments {
production {
grails.config.locations << "classpath:${appName}-db-custom.properties"
}}
Таким образом, нет проблем во время упаковки, и во время выполнения вы можете заменить ваш источник данных на значения.
В зависимости от времени, grails сначала загружает данные соединения из скомпилированного DataResource.groovy
, а затем помещает их в глобальную конфигурацию. Эти значения затем динамически перезаписываются во время выполнения конфигурацией в файле свойств.