如何在Grails插件中更新主项目的配置

解决该问题的环境:Grails 2.1

在Grails插件中更新主项目的配置,主要面临几个小问题:

[list]
[*]在什么地方改?
[*]如何引用插件的资源?
[*]如何引用主项目的资源?
[*]如何修改主项目的配置?
[/list]
[u]1) 在什么地方改?[/u]
建议的地方包括,插件的_Install.groovy或者自定义的脚本,如:UpdateConfig.groovy

[u]2) 如何引用插件的资源?[/u]
对于这一点,有两种方案,如果在_Install.groovy中引用,可以通过诸如:
"${pluginBasedir}/src/templates/_frontpage.gsp"

注意这里的"pluginBasedir"这个预定义变量
如果在自定义脚本中引用插件资源,则pluginBasedir已失效了,必须通过${pluginName}PluginDir这个变量来引用,如:
"${ext3scaffoldingPluginDir}/src/templates/_frontpage.gsp"


具体可以参考Grails 2.1.0 pdf文档的246页

[u]3) 如何引用主项目的资源?[/u]

这个问题比较简单,通过${basedir}项目即可,如:
config=new File("$basedir/grails-app/conf/Config.groovy")

[u]4) 如何修改主项目的配置?[/u]
这个问题可以自由发挥,主要通过正则表达式,或者字符串操作来进行

[b]范例:[/b]

动态在Config.groovy配置文件中插入 json.date的配置

includeTargets << grailsScript("Init")

target(main: "Update the main project config file") {
config=new File("$basedir/grails-app/conf/Config.groovy")
if(config.text.contains("grails.converters.json.date = 'javascript'")==false)
{
config << """
//3lifestone modify start
grails.converters.json.date = 'javascript'
//3lifestone modify end
"""
event("StatusUpdate", [ "the main project config is updated"])
}else{
event("StatusUpdate", [ "the main project config is already updated"])
}
}

setDefaultTarget(main)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值