7
grails支持创建战争。但是有没有任何通过Grails创造耳朵的命令?在grails中创造耳朵
grails支持创建战争。但是有没有任何通过Grails创造耳朵的命令?在grails中创造耳朵
在Grails中没有直接的支持,但是这个Gant脚本可以完成这项工作。只需将其添加到scripts/
目录中,并调用为grails ear
即可。
剧本最初是由Graeme on mailing list
includeTargets << grailsScript("_GrailsWar")
target(ear: "Creates an EAR file from a Grails WAR") {
war()
event("StatusUpdate", ["Building EAR file"])
generateApplicationXml()
def warDest = new File(warName).parentFile
def earFile = "${projectTargetDir}/${contextRoot}.ear"
ant.ear(destfile:earFile, appxml:appXml, update:true) {
fileset(dir:warDest, includes:"*.war")
}
event("StatusFinal", ["Done creating EAR $earFile"])
}
target(defineContextRoot:"defines the context root") {
contextRoot = "${grailsAppName}${grailsAppVersion ? '-'+grailsAppVersion : ''}"
}
target(generateApplicationXml:"Generates an application.xml file") {
depends(defineContextRoot)
def warDest = new File(warName)
appXml = "${projectTargetDir}/application.xml"
new File(appXml).write """\
<?xml version="1.0" encoding="UTF-8"?>
<application
xmlns=http://java.sun.com/xml/ns/j2ee
xmlns:xsi="http://www.w3.org/ 2001/XMLSchema-instance"
xsi:schemaLocation="http:// java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/ application_1_4.xsd"
version="1.4">
<display-name>${grailsAppName}</display-name>
<module>
<web>
<web-uri>${warDest.name}</web-uri>
<context-root>${contextRoot}</context-root>
</web>
</module>
</application>
"""
}
setDefaultTarget(ear)
这是一个非常晚的答案,但时下的Grails Maven插件是相当不错的发布。因此,您可以从Grails Maven插件生成的战争中构建一个耳朵。
为什么这不是grails框架的一部分? – kaskelotti 2014-02-20 10:19:27