2

仮定の状況:

Web から Grails アプリケーションを WAR ファイルとしてダウンロードしましたfoo.war。ドキュメントには、/foo.groovyこのパスが に含まれているためgrails.config.locations、独自のカスタム構成を に配置できると書かれていConfig.groovyます。すべてのカスタム構成をその 1 つのファイルにダンプでき、人生は良好です。

どうやって、ここに私の問題があります... FooApp の構成は大きくて毛深いので、すべてを 1 つのファイルにまとめたくありません。/bar.groovyに分けて整理したいと思い/baz.groovyます。/foo.groovyFooApp もそれらを取得/bar.groovyして処理するように何かを指定する方法はあります/baz.groovyか?

grails.config.locations私は既にinにパスを追加しようとしまし/foo.groovyたが、Grails はそれを好まず、起動時に厄介な例外をスローしました。他にどのようなアプローチを取るべきかわかりません。

わかりやすくするために編集します。

grails-app/conf/Config.groovy次のようになります。

grails.config.locations = ["file:/foo.groovy"]

さて、 を変更せずに を変更するgrails-app/conf/Config.groovyだけで、/foo.groovy以外の設定ファイルをロードする方法はあります/foo.groovyか?

4

1 に答える 1

2

内の追加の構成ファイルを丸呑みすることができますfoo.groovy:

foo.groovy

port {
  to {
    somewhere=8080
    another {
      place=7070
    }  
  }  
}
host = new ConfigSlurper().parse(new File("bar.groovy").toURL())

bar.groovy

to {
  somewhere="http://localhost/"
  another {
    place="https://another.place.com/"
  }
}

したがって、アプリ内には次のものがあります。

assert grailsApplication.config.port.to.somewhere == 8080
assert grailsApplication.config.port.to.another.place == 7070
assert grailsApplication.config.host.to.somewhere == "http://localhost/"
assert grailsApplication.config.host.to.another.place == "https://another.place.com/"
于 2012-07-13T14:14:22.057 に答える