私は自分のプロジェクトでRequireJSを使用しています。これには、モジュール間の依存関係を追跡し、それらを 1 つの JavaScript ファイルに結合するスクリプトが含まれています。オプションで、結合された js ファイルを Google Closure コンパイラで縮小することもできます。すべての依存関係が 1 つの js ファイルに含まれるこの形式になると、そのファイルは jsc を使用して簡単にコンパイルできます。
これは、1 つの結合された js ファイルを作成し、それをクラス ファイルにコンパイルしてから、実行可能な JAR を作成するために使用する私の ant スクリプトの一部です。
<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>
完全なビルド スクリプトは、ここにあります。