1

warファイル内のjsファイルを最小化されたバージョン(ClosureCompilerによって最小化された-https ://developers.google.com/closure/compiler/docs/gettingstarted_app )に置き換えたいと思います。戦争を構築するために私はantを使用しています:

...
<target name="war" depends="buildnumber" description="--> Creates a WAR of a Grails application">
    <grails command="war" environment="${grails.env}"/>
</target>
...

追加した:

grails.project.resources = { stagingDir ->
    delete(file:"${stagingDir}/js/*.js")
}

<root> \ grails-app \ conf \ BuildConfig.groovyに移動しますが、warファイルのjsファイルは削除されません。

antビルドファイルで最小化するファイルのリストを提供するにはどうすればよいですか?また、それを最終的なwarファイルに追加するにはどうすればよいですか?

更新しました:

最小化されたファイルをwarファイルにコピーするために、以下を\ grails-app \ conf\BuildConfig.groovyに追加しました。最初のステップで、antはjsファイルを最小化します。次のステップでwarファイルが作成され、このステップで元のjsファイルが最小化されたファイルに置き換えられます。

grails.war.resources = { stagingDir, args ->
    def jsFiles = [
            'file1.js',
            'file2.js',
            'file3.js',
            ...
            'templates.common.js'
    ];
    for (file in jsFiles) {
        File f = new File("minimizedjs\\${file}");
        if(f.exists()) {
            copy(file: "minimizedjs\\${file}", tofile: "${stagingDir}\\js\\${file}")
        }
        else {
            println('.....!');
            break;
        }
    }
}
4

2 に答える 2

5

そのためのプラグイン(http://grails.org/plugin/closure-compiler)があるので、Antを使用した手動プロセスは必要ありません。

于 2012-12-11T21:35:17.180 に答える
4

バート・ベックウィズの答えは正しいものです。

ただし、ソリューションが機能しない具体的な理由は次のとおりです。

  • する必要がありますgrails.war.resources。ないgrails.project.resourcesマニュアルを参照してください
  • antでワイルドカードを使用するには、属性filesetの代わりにタグを使用しますfile

動作するはずの修正バージョンは次のとおりです。

grails.war.resources = { stagingDir, args ->
    delete() {
        fileset(dir:"${stagingDir}/js", includes: "*.js")
    }
}
于 2012-12-11T21:44:04.930 に答える