أسهل طريقة لجعل الحقيقية "المهام ملف" في ANT

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

  •  06-07-2019
  •  | 
  •  

سؤال

وأنا لا تزال تعلم كيفية استخدام ANT جيدا، وأردت أن أفهم إذا كان هناك بعض بطريقة معقولة للقيام بمهام ملف في ذلك، على غرار الخليع وتقديم:

http://martinfowler.com/articles/rake.html#FileTasks

و"مع ملف كنت تقصد الملفات الفعلية بدلا من الأسماء المهمة. لذلك" بناء / ديف / rake.html "و" ديف / rake.xml "هي ملفات الفعلية. ملف HTML هو الناتج من هذه المهمة و ملف XML هو إدخال يمكنك التفكير في مهمة ملف قوله للنظام بناء كيفية جعل ملف الإخراج - في الواقع هذا هو بالضبط الفكرة في جعل - لك قائمة الملفات الإخراج الذي تريد وتقول جعل كيفية جعلها.

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

وهكذا وبعبارة أخرى، دعنا نقول أريد أن أشغل ثنائي العرف وأريد فقط أن ثنائي لتشغيل إذا كان أي من الملفات قد تغيرت. ويرتبط هذا إلى هذا السؤال، ولكن لا أريد لتشغيل ثنائي على الإطلاق، ليس فقط تمرير جزء من fileset (أي لا يوجد سوى واحد في fileset وأنا لا أريد أداة لتشغيل على الإطلاق).

والحل الأمثل أيضا لن يكون أمرا loooong، بل يمكن تطبيقها بسهولة على أي هدف - ربما باستخدام بعض ANT جافا سكريبت أو العرف المهمة

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

المحلول

استخدم النمل contrib مهمة outofdate . انها بالضبط خصائص تسألون عنه. هنا هو النمل contrib موقع .

وهنا هو قالب حول كيفية إدماجه في الإنشاء الخاصة بك:

<taskdef
  resource="net/sf/antcontrib/antlib.xml"
>
  <classpath>
    <pathelement location="${ant-contrib.jar}"/>
</taskdef>

<outofdate>
 <sourcefiles path="dev/rake.xml"/>
 <targetfiles path="build/dev/rake.html"/>
 <sequential>
   ... do your work here ...
   ... will only run if rake.html is older than rake.xml ...
 </sequential>
</outofdate>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top