Edited at

番外編:grails.config.locationsの設定

More than 3 years have passed since last update.


環境

grails 2.3.11

groovy 2.1

GGTS3.6.4


grails.config.locationsとは

メイン設定にマージされるべきプロパティファイルや追加のGrails設定ファイルの場所である。

初期に生成されるConfig.groovy中には、以下のようにある。


Config.groovy

// grails.config.locations = [ "classpath:${appName}-config.properties",

// "classpath:${appName}-config.groovy",
// "file:${userHome}/.grails/${appName}-config.properties",
// "file:${userHome}/.grails/${appName}-config.groovy"]

${appName}-config.groovyと書いてあったので、.classでなく.groovyでないと 読み込めないと

思いこんでしまい、Tomcatのwarデプロイ時にうまくいかなかったが、普通 に.classを読み込んだのでメモ。

以下ソース


grails.config.locations

if (Metadata.getCurrent().isWarDeployed()){

//log.warn 'warデプロイ'

def path = getClass().getProtectionDomain().getCodeSource().getLocation()
.getFile().replace(getClass().getSimpleName() + ".class", "").substring(1);

grails.config.locations = ["file:" + path + "add-config.class"]

}else{

//log.warn 'eclipse起動'

grails.config.locations = ["file:buildターゲットフォルダ名/classes/add-config.class"]