2011-02-02 1 views

答えて

9

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) 
+0

これがgrailsフレームワークの一部でない理由は何ですか? – kaskelotti

+3

多分、このスクリプトは以前のバージョンのgrailsで動作しましたが、 '2.3.4'ではwarNameプロパティが存在しないというエラーが出ました。これをスクリプト内で 'warName =" $ {basedir}/target/$ {grailsAppName} - $ {grailsAppVersion} .war "'と定義することで解決しました。ソースからチェックしたところ、warNameプロパティはWarCreator.groovy(およびおそらく_GrailsWarスクリプト)に存在するようですが、何らかの理由でEarスクリプトには表示されませんでした。 – kaskelotti

+0

しかし、Grailsの耳は開発環境用に生成する、私は生産環境用に作成する必要があります – sirdaiz

2

により投稿され、これは非常に遅く答えですが、この頃のGrails Mavenプラグインはかなり良いです。だから、あなたはgrails mavenプラグインによって作られた戦争から耳を築くことができます。

関連する問題