What\'s the best practice of making a variable that would be accessible by almost all classes in a Grails project? Is there a config file that I can use for storage of that data
Your best bet is Config.groovy. Any class can access ConfigurationHolder.getConfig() which makes it global, and you can even have environment-specific values of your variable.
someVar = "foo"
environments {
production {
grails.serverURL = "http://www.changeme.com"
someOtherVar = 1000
}
development {
grails.serverURL = "http://localhost:8080/${appName}"
someOtherVar = 100
}
test {
grails.serverURL = "http://localhost:8080/${appName}"
someOtherVar = 0
}
}
With Grails 2.2
//In Config.groovy
myVar = '/My/Root/Images/Folder'
//In your Services/Controllers/etc..
import grails.util.Holders
def grailsApplication = Holders.getGrailsApplication()
//access you variable
def myVar = grailsApplication.config.myVar;