本帖最后由 Celine 于 2012-11-4 00:21 编辑
Grails无疑是一个固执己见框架,并且它喜欢按照约定来进行配置,但这并不意味着你 不能去配置它。
我们将看到你可以如何去影响和修改标准的Grails构建。
为了自定义一个构建,你首先需要知道你可以自定义些什么。
Grails构建配置的核心就是grails.util.BuildSettings 类,它包含了大量有用的信息。
它控制了哪些类被编译、应用程序依赖什么以及其他类似的设置。
以下是一个配置选项和它们的默认值的集录:
[table]
[tr][td=133]属性
[/td][td=235]配置选项
[/td][td=241]默认值
[/td][/tr]
[tr][td]grailsWorkDir
[/td][td]grails.work.dir
[/td][td]$USER_HOME/.grails/
[/td][/tr]
[tr][td]projectWorkDir
[/td][td]grails.project.work.dir
[/td][td]/projects/
[/td][/tr]
[tr][td]classesDir
[/td][td]grails.project.class.dir
[/td][td]/classes
[/td][/tr]
[tr][td]testClassesDir
[/td][td]grails.project.test.class.dir
[/td][td]/test-classes
[/td][/tr]
[tr][td]testReportsDir
[/td][td]grails.project.test.reports.dir
[/td][td]/test/reports
[/td][/tr]
[tr][td]resourcesDir
[/td][td]grails.project.resource.dir
[/td][td]/resources
[/td][/tr]
[tr][td]projectPluginsDir
[/td][td]grails.plugins.dir
[/td][td]/plugins
[/td][/tr]
[tr][td]globalPluginsDir
[/td][td] grails.global.plugins.dir
[/td][td]/global-plugins[/td][/tr]
[/table]
BuildSettings 类也有一些其他属性,但是它们应该被只读处理:
[table]
[tr][td=173]属性
[/td][td=150]描述
[/td][/tr]
[tr][td]baseDir
[/td][td]项目的位置。
[/td][/tr]
[tr][td]userHome
[/td][td]用户的主目录。
[/td][/tr]
[tr][td]grailsHome
[/td][td]正在使用的Grails的安装位置(也许为 null)。
[/td][/tr]
[tr][td]grailsVersion
[/td][td]被项目使用的Grails的版本。
[/td][/tr]
[tr][td]grailsEnv
[/td][td]当前的Grails环境。
[/td][/tr]
[tr][td]compileDependencies
[/td][td]编译时项目依赖的 文件 实例列表。
[/td][/tr]
[tr][td]testDependencies
[/td][td]测试时项目依赖的 文件 实例列表。
[/td][/tr]
[tr][td]runtimeDependencies
[/td][td]运行时项目依赖的 文件 实例列表。
[/td][/tr]
[/table]
当然,如果你不能获得这些属性那么它们并没有多好。
幸运的是这很容易实现:通过grailsSettings脚本变量可以得到一个 BuildSettings 实例用于你的脚本。
你也可以在你的代码中通过使用 grails.util.BuildSettingsHolder 类来访问它,但是并不推荐这样做。