2008-10-23 4 views
7

Rhino JavaScript 컴파일러를 사용하여 일부 JavaScript를 컴파일하여 프로젝트에서 사용할 바이트 코드 파일을 만들고 싶습니다. Groovy, NetREXX (!) 및 Jython에 대한 groovyc, netrexxc 및 jythonc 작업이 각각 있으므로 이미 존재해야합니다. 누구나 그러한 Ant 태스크를 사용하거나 작성 했습니까? 아니면 누군가가 하나의 태스크를 작성하는 방법에 대한 팁을 제공 할 수 있습니까?(Rhino) JavaScript를 Java 바이트 코드로 컴파일하기 위해 Ant 태스크를 사용하거나 작성한 사람이 있습니까?

이상적으로는 JavaScript 또는 Java 클래스 간의 종속성을 해결할 수있는 방법이 필요합니다.

답변

5

Java 작업을 사용하지 않는 이유는 무엇입니까?

<java fork="yes" 
    classpathref="build.path" 
    classname="org.mozilla.javascript.tools.jsc.Main" 
    failonerror="true"> 
    <arg value="-debug"/> 
     ... 
    <arg value="file.js"/>   
</java> 

이의가 있습니까?

+0

흠, 자바 및 JavaScript 클래스 간의 종속성을 처리하는 것이 주 관심사입니다. 그래도 지금은 충분할 것 같습니다. 덕분입니다. –

5

다음은 rhino 애플리케이션에 사용하는 샘플 build.xml입니다. 당신은 자바 스크립트 파일을 많이 가지고 있다면 당신은 이상의 태그
을 계속 추가 할 필요가 ~ : 개미 컴파일 항아리 실행

<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> 

~ 내가 추적 스크립트를 포함하고 내 프로젝트에 RequireJS을 사용하고

6

모듈 간의 의존성을 제거하고 단일 JavaScript 파일로 결합합니다. 선택적으로 결합 된 js 파일을 Google Closure 컴파일러로 축소 할 수도 있습니다. 이 양식에 모든 종속성이 단일 js 파일에 포함되면 jsc를 사용하여 파일을 쉽게 컴파일 할 수 있습니다. 전체 빌드 스크립트를 찾을 수

<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> 

: 여기

내가, 하나의 결합 된 JS 파일을 생성 클래스 파일로 컴파일하고 실행 JAR를 작성하는 데 사용할 내 개미 스크립트의 세그먼트의 here.