ich RequireJS in meinem Projekt bin mit, die ein Skript enthält, die Spuren out Abhängigkeiten zwischen Modulen und kombiniert sie in einer einzigen JavaScript-Datei. Optional kann die kombinierte js-Datei auch mit dem Google Closure-Compiler minimiert werden. Sobald es in dieser Form ist, wo alle Abhängigkeiten in einer einzigen js-Datei enthalten sind, kann die Datei leicht mit jsc kompiliert werden.
Hier ist ein Teil meines Ant-Skript, das ich die einzige kombinierte js-Datei erstellen verwenden, kompilieren es zu einer Klassendatei, und dann eine ausführbare JAR erstellen:
<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>
Der komplette Build-Skript gefunden werden kann here.
Hmm, das Hauptproblem ist die Handhabung von Abhängigkeiten zwischen Java und JavaScript-Klassen. Trotzdem könnte das jetzt ausreichen, danke. –