Java Bytecode에 JavaScript (Rhino) JavaScript를 컴파일하기 위해 ANT 작업을 사용하거나 작성한 사람이 있습니까?

StackOverflow https://stackoverflow.com/questions/231550

  •  04-07-2019
  •  | 
  •  

문제

사용하고 싶습니다 코뿔소 자바 스크립트 프로젝트에서 사용하기 위해 일부 javaScript를 .class bytecode 파일로 컴파일하는 컴파일러. Groovyc, 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>

반대 의견이 있습니까?

다른 팁

사용 중입니다 요구 사항 내 프로젝트에서 모듈 간의 종속성을 추적하고 단일 JavaScript 파일로 결합하는 스크립트가 포함되어 있습니다. 선택적으로 Google Closure 컴파일러와 결합 된 JS 파일을 완료 할 수도 있습니다. 이 양식이되면 모든 종속성이 단일 JS 파일에 포함 된 경우 JSC를 사용하여 파일을 쉽게 컴파일 할 수 있습니다.

다음은 단일 결합 JS 파일을 작성하고 클래스 파일로 컴파일 한 다음 실행 가능한 JAR을 만드는 데 사용하는 개미 스크립트의 세그먼트입니다.

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

~

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top