Bur*_*ith 15
您可以scripts/_Events.groovy
使用事件处理程序创建"WebXmlEnd"事件,该事件在Grails和插件完成更改后触发.通过解析XML并写出更新的文件,使用普通搜索/替换或通过DOM方法更新XML:
import grails.util.Environment
eventWebXmlEnd = { String filename ->
if (Environment.current != Environment.PRODUCTION) {
return
}
String content = webXmlFile.text
// update the XML
content = ...
webXmlFile.withWriter { file -> file << content }
}
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的解决方案,来自death-head.ch的人
首先安装模板
grails install-templates
Run Code Online (Sandbox Code Playgroud)
然后定制web.xml
你会发现的src/templates/war/web.xml
.我选择制作a web_dev.xml
和a web_prod.xml
并删除web.xml
.我想web_prod.xml
包含一个安全约束块.无论如何...
将以下内容放入BuildConfig.groovy
:
// #########################################################
// ## Can't use environment switching block because BuildConfig doesn't support it.
// ## @url http://jira.grails.org/browse/GRAILS-4260
// ## So use this workaround:
// ## @url http://death-head.ch/blog/2010/09/finally-solved-the-base-authentication-in-grails/
// #########################################################
switch ("${System.getProperty('grails.env')}") {
case "development":
if (new File("/${basedir}/src/templates/war/web_dev.xml").exists()) {
grails.config.base.webXml = "file:${basedir}/src/templates/war/web_dev.xml"
}
break;
default:
if (new File("/${basedir}/src/templates/war/web_prod.xml").exists()) {
grails.config.base.webXml = "file:${basedir}/src/templates/war/web_prod.xml"
}
break;
}
Run Code Online (Sandbox Code Playgroud)
祝好运!
归档时间: |
|
查看次数: |
5650 次 |
最近记录: |