我在我的項目,其中包括跟蹤腳本中使用RequireJS取出模塊之間的依賴關係,並將它們組合成一個JavaScript文件。或者,它也可以使用Google Closure編譯器縮小組合的js文件。一旦它處於這種形式中,所有依賴關係都包含在單個js文件中,則可以使用jsc輕鬆編譯該文件。
這裏是我的ant腳本的一個片段,我用它來創建單個組合js文件,把它編譯成類文件,然後創建一個可執行的JAR:
<target name="compile-single-js">
<mkdir dir="${build-js}"/>
<java classname="org.mozilla.javascript.tools.shell.Main">
<classpath>
<path refid="rhino-classpath"/>
<path refid="closure-classpath"/>
</classpath>
<arg value="${js-build-script}"/>
<arg value="${js-build-dir}"/>
<arg value="name=${build-js-main-rhino-frontend-module}"/>
<arg value="out=${build-js-main}"/>
<arg value="baseUrl=."/>
<arg value="includeRequire=true"/>
<arg value="inlineText=true"/>
<arg value="optimize=none"/>
</java>
</target>
<target name="compile-single-class" depends="compile-single-js">
<mkdir dir="${build-class}"/>
<!-- TODO: set -opt -->
<java classname="org.mozilla.javascript.tools.jsc.Main">
<classpath>
<path refid="rhino-classpath"/>
</classpath>
<arg value="-o"/>
<arg value="${build-class-main-name}.class"/>
<arg value="${build-js-main}"/>
</java>
<move file="${build-js}/${build-class-main-name}.class" todir="${build-class}"/>
</target>
<target name="jar-single-class" depends="compile-single-class">
<mkdir dir="${build-jar}"/>
<jar destfile="${build-jar-main}"
basedir="${build-class}"
includes="${build-class-main-name}.class">
<manifest>
<attribute name="Main-Class" value="${build-class-main-name}" />
</manifest>
</jar>
</target>
完整的構建腳本可以發現here。
嗯,主要關心的是處理Java和JavaScript類之間的依賴關係。儘管如此,這可能足以爲現在工作 - 謝謝。 – 2008-10-24 01:21:01