سؤال

لدي نملة السيناريو الذي ينفذ عملية النسخ باستخدام 'نسخ' المهمة.كان مكتوب ويندوز, وقد ضمنية C:\ path كما todir حجة.أرى 'exec' المهمة OS الحجة, هل هناك طريقة مشابهة فرع نسخة على أساس OS ؟

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

المحلول

أنصح وضع المسار في الممتلكات ، ثم إعداد الخاصية مشروط استنادا إلى نظام التشغيل الحالي.

<condition property="foo.path" value="C:\Foo\Dir">
   <os family="windows"/>
</condition>
<condition property="foo.path" value="/home/foo/dir">
   <os family="unix"/>
</condition>

<fail unless="foo.path">No foo.path set for this OS!</fail>

ومن الفوائد الجانبية مرة واحدة هو في خاصية يمكنك تجاوز ذلك دون تحرير النمل النصي.

نصائح أخرى

وقد نشرت سابقا اقتراحات من نظام التشغيل متغير محدد ، ولكن مرات عديدة يمكنك ببساطة حذف "C:" بادئة تستخدم الخطوط المائلة للأمام (Unix نمط) مسارات الملفات و أنه سوف يعمل على كل من ويندوز و أنظمة Unix.

لذلك, إذا كنت ترغب في نسخ الملفات "C:/tmp" على ويندوز "/tmp" على Unix, هل يمكن استخدام شيء من هذا القبيل:

<copy todir="/tmp" overwrite="true" >
         <fileset dir="${lib.dir}">
             <include name="*.jar" />
         </fileset>
</copy>

إذا كنت لا تريد/تحتاج إلى تعيين المشروط المسار على أساس نظام التشغيل ، فإنه يمكن تبسيط النحو:

    <condition property="root.drive" value="C:/" else="/">
        <os family="windows" />
    </condition>
    <copy todir="${root.drive}tmp" overwrite="true" >
             <fileset dir="${lib.dir}">
                 <include name="*.jar" />
             </fileset>
    </copy>

هل يمكن استخدام حالة المهمة إلى فرع مختلف نسخ المهام...من النمل دليل:

<condition property="isMacOsButNotMacOsX">
<and>
  <os family="mac"/>

  <not>
    <os family="unix"/>

  </not>
</and>

تعريف متغير هذا هو المجلد الجذر من العملية الخاصة بك.بادئة المجلدات الخاصة بك مع هذا المتغير ، بما في ذلك في نسخ المهمة.

تعيين متغير يستند إلى نظام التشغيل باستخدام المشروط أو تمر عليه كحجة النمل النصي.

لا يمكنك استخدام متغير تعيين اعتمادا على نوع ؟ هل يمكن وضعه في build.properties الملف.أو هل يمكن تعيين باستخدام الشرط.

النمل-contrib لديه <osfamily /> المهمة.هذا وسوف تعرض عائلة نظام التشغيل إلى خاصية (تحديد اسم).هذا يمكن أن يكون مفيدا.

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