JavaScriptをJavaバイトコードにコンパイルする(Rhino)ためにAntタスクを使用または作成した人はいますか?
-
04-07-2019 - |
質問
Rhino JavaScript コンパイラを使用してJavaScriptを.classにコンパイルしたいプロジェクトで使用するバイトコードファイル。 Groovy、NetREXX(!)、およびJythonにはそれぞれgroovyc、netrexxc、およびjythoncのタスクがあるため、これはすでに存在しているようです。誰かがそのようなAntタスクを使用または作成したことがありますか、それとも作成方法に関するヒントを提供できますか?
理想的には、JavaScriptまたはJavaクラス間の依存関係を解決する方法があります。
解決
単にjavaタスクを使用しないのはなぜですか?
<java fork="yes"
classpathref="build.path"
classname="org.mozilla.javascript.tools.jsc.Main"
failonerror="true">
<arg value="-debug"/>
...
<arg value="file.js"/>
</java>
異議はありますか
他のヒント
プロジェクトで RequireJS を使用しています。これには、モジュール間の依存関係を追跡し、それらを結合するスクリプトが含まれています単一のJavaScriptファイルに。オプションで、Google Closureコンパイラを使用して、結合されたjsファイルを縮小することもできます。すべての依存関係が単一のjsファイルに含まれるこの形式になると、ファイルはjscを使用して簡単にコンパイルできます。
これは、単一の結合された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>
完全なビルドスクリプトはこちら。
これは、rhinoアプリケーションに使用するbuild.xmlのサンプルです。 JavaScriptファイルがたくさんある場合は、タグを追加し続ける必要があります
〜:ant compile jar run
<project>
<target name="compile">
<mkdir dir="build/classes"/>
<java fork="yes"
classpath="js.jar"
classname="org.mozilla.javascript.tools.jsc.Main"
failonerror="true">
<arg value="-nosource"/>
<arg value="-opt"/>
<arg value="9"/>
<arg value="-version"/>
<arg value="170"/>
<arg value="src/SwingApplication.js"/>
</java>
<move todir="build/classes">
<fileset dir="src">
<include name="**/*.class"/>
</fileset>
</move>
</target>
<target name="jar">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/SwingApplication.jar" basedir="build/classes">
<zipfileset src="js.jar" includes="**/*.class"/>
<manifest>
<attribute name="Main-Class" value="SwingApplication"/>
</manifest>
</jar>
</target>
<target name="run">
<exec executable="java">
<arg valUe="-jar"/>
<arg value="build/jar/SwingApplication.jar"/>
</exec>
</target>
</project>
〜
所属していません StackOverflow