पर्यावरण-विशिष्ट web.xml
grails में प्रविष्टियों को बनाने का सबसे अच्छा तरीका क्या है?पर्यावरण-विशिष्ट web.xml grails में?
मुझे केवल उत्पादन के लिए कुछ संशोधन करने की आवश्यकता है, क्योंकि वे स्थानीय रूप से चलते हैं।
कोई विचार?
पर्यावरण-विशिष्ट web.xml
grails में प्रविष्टियों को बनाने का सबसे अच्छा तरीका क्या है?पर्यावरण-विशिष्ट web.xml grails में?
मुझे केवल उत्पादन के लिए कुछ संशोधन करने की आवश्यकता है, क्योंकि वे स्थानीय रूप से चलते हैं।
कोई विचार?
आपबना सकते हैं'WebXmlEnd' ईवेंट के लिए इवेंट हैंडलर के साथ जिसे Grails और प्लगइन्स ने अपने परिवर्तन करने के बाद निकाल दिया है। अद्यतन सादे खोज के साथ एक्सएमएल/बदलने के लिए या डोम विधियों के माध्यम से 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 }
}
मैं इसे करने की कोशिश कभी नहीं किया है, लेकिन यह BuildConfig.groovy
में grails.config.base.webXml
पैरामीटर वर्तमान वातावरण पर निर्भर है निर्दिष्ट करने के लिए संभव हो जाना चाहिए।
एक list of available BuildConfig settings here
संपादित
वास्तव में, due to this issue नहीं है, यह एक तरह से आगे :-(शायद की तरह संपत्ति गुजर नहीं है:
grails -Dgrails.config.base.webXml=/path/to/web.xml
सब संभव है कि है
यहाँ समाधान है कि मैं उपयोग कर रहा हूँ, पुरुष भर से death-head.ch
पर हैपहले टेम्पलेट्स
grails install-templates
स्थापित तो अनुकूलित web.xml
आप src/templates/war/web.xml
में मिल जाएगा। मैंने web_dev.xml
और 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;
}
गुड लक!
यह अच्छी तरह से काम करता है। '" $ {System.getProperty ('grails.env')} का उपयोग करने के बजाय "मैं' grails.util.Environment.getCurrent() से पढ़ता हूं। Grails 2.2.0 में getName() ' – Alex