Tôi đang sử dụng RequireJS trong dự án của tôi, trong đó bao gồm một kịch bản mà dấu vết ra các phụ thuộc giữa các mô-đun và kết hợp chúng thành một tệp JavaScript duy nhất. Tùy chọn, nó cũng có thể rút gọn tệp kết hợp js bằng trình biên dịch Google Closure. Khi nó ở dạng này, trong đó tất cả các phụ thuộc được bao gồm trong một tệp js, tệp có thể được biên dịch dễ dàng bằng cách sử dụng jsc.
Dưới đây là một phân đoạn của kịch bản kiến của tôi mà tôi sử dụng để tạo ra các tập tin js kết hợp duy nhất, biên dịch nó vào một tập tin lớp học, và sau đó tạo ra một JAR thực thi:
<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>
Việc xây dựng kịch bản hoàn chỉnh có thể được tìm thấy here.
Hmm, mối quan tâm chính là xử lý các phụ thuộc giữa các lớp Java và JavaScript. Tuy nhiên, điều này có thể đủ để làm việc ngay bây giờ - cảm ơn. –