سؤال

وأنا خلقت build.xml بلدي الذي له:

<target name="compile">
    <mkdir dir="build"/> 
    <javac destdir="build"> 
        <src path="src"/> 
    </javac>
</target>

<target name="build" depends="compile">
    <mkdir dir="dist"/>
    <jar destfile="dist/app.jar" basedir="build" />
</target>

<target name="run" depends="compile">
    <java classname="webserver.Loader" classpath="build" fork="true" />      
</target>

وإنه يعمل بشكل ممتاز. عندما أدعو المدى النمل لذلك يجمع ويدير طلبي، ولكن طلبي لديه صفقة مع الرموز، وأنه لا يتم نقل إلى مجلد "بناء" حتى ينتهي طلبي مع استثناء أنه لا يمكن تحديد موقع بلدي الرموز. عندما نقلها بنفسي ثم يعمل.

ولقد حاولت استخدام

<copy todir="build/app/icons">
    <fileset dir="src/app/icons"/>
</copy>

وكان يعمل، ولكن أود أن تفعل ذلك من دون الأمر copy. هل هناك أي معلمة لjavac؟ أو أي شيء آخر؟

وشكرا لك على الإجابة.

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

المحلول

وعذرا، وسوف تحتاج لنسخ الملفات غير جافا يدويا. الموارد من الناحية الفنية لا "مصدر". سوف javac سطر الأوامر لا نسخ ملفات الموارد من الدليل المصدر إلى الدليل الإخراج، مهمة javac لا إرادة النمل.

نصائح أخرى

وليس هناك مثل هذه المعلمة. يمكنك نسخ جميع أنواع الملفات بين الدلائل الخاص بك مع:

<copy todir="build">
    <fileset dir="src"
             includes="**/*.xml,**/*.properties,**/*.txt,**/*.ico" />
</copy>

ويمكنك القيام بذلك باستخدام عنصر fileset المهمة jar بدلا من نسخ يدويا الملفات. على سبيل المثال:

<jar destfile="dist/app.jar" basedir="build">
    <fileset dir="src" includes="app/icons/**" />
</jar>

وهذا سوف نسخ كل شيء في src/app/icons/ إلى مسار app/icons في ملف بامتداد الخاص بك.

لا، ليست هناك. المهمة النسخة هي الطريقة الصحيحة لنسخ الموارد في مجلدات الإنشاء.

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