وقد أي شخص يستخدم أو كتابة مهمة النملة لتجميع (الكركدن) جافا سكريبت لتتمكن جافا بايت كود؟

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

  •  04-07-2019
  •  | 
  •  

سؤال

وأود أن استخدام الكركدن جافا سكريبت مترجم لتجميع بعض جافا سكريبت ل. الطبقة ملفات بايت كود لاستخدامها في المشروع. يبدو مثل هذا ينبغي بالفعل موجودة، لأن هناك مهام groovyc، netrexxc، وjythonc للرائع، NetREXX (!) وجايثون، على التوالي. ويمكن لأي شخص أن يقدم بعض النصائح حول كيفية كتابة واحدة أي شخص يستخدم أو كتابة مثل مهمة النملة، أو؟

ومن الناحية المثالية أن كان لديك بعض وسيلة لحل التبعيات بين الطبقات جافا سكريبت أو جافا.

هل كانت مفيدة؟

المحلول

لماذا لا مجرد استخدام مهمة جافا؟

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

وأي اعتراضات؟

نصائح أخرى

وأنا باستخدام RequireJS في مشروعي، والذي يتضمن السيناريو الذي يتتبع من تبعيات بين الوحدات، ويجمع بينهما في ملف واحد جافا سكريبت. اختياريا، فإنه يمكن أيضا تقليل جافا ملف شبيبة جنبا إلى جنب مع مترجم جوجل إغلاق. بمجرد أن يكون في هذا الشكل، حيث يتم تضمين كافة التبعيات في ملف شبيبة واحد، وملف يمكن جمعها بسهولة باستخدام هيئة الأوراق المالية.

وفيما يلي جزء من مخطوطتي النمل التي يمكنني استخدامها لإنشاء ملف شبيبة المشترك واحد، ترجمة ذلك إلى ملف فئة، ثم قم بإنشاء 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>

ويمكن الاطلاع على السيناريو استكمال بناء <لأ href = "https://svn.apache.org/repos/asf/commons/sandbox/gsoc/2010/scxml-js/trunk/build.xml" يختلط = " noreferrer "> هنا .

وهنا هو 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>

~

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top