مرحبا بالجميع!
البداية التالية لمجموعة
Java Developer ، حيث نواصل جميعًا تجربتنا لحقيقة أن عملية التعلم لا يجب أن تكون مستمرة ("هل يجب أن تكون عملية التواصل مستمرة؟"). أي أننا قمنا بإعادة صياغة البرنامج وتعديله قليلاً ، وقسمناه إلى ثلاث خطوات ، يمكن تمريرها بسهولة مع استراحة بينهما. بشكل عام ، من المثير للاهتمام بالنسبة للطلاب ولنا ، إذا لم يكن هناك أحد رطبًا ، وإلا فسيبدو البرنامج أكثر تعقيدًا قليلاً ، على الرغم من أنه لم يكن سهلاً قبل ذلك. حسنًا ، مقال مثير للاهتمام تقليديًا يتعلق بدورتنا.
دعنا نذهب!

على
الموقع الرسمي ، توصف picocli بأنها "واجهة سطر أوامر صغيرة قوية" ، وهي "إطار Java أحادي الملف لتحليل حجج سطر الأوامر وإنشاء رسائل مساعدة سهلة التخصيص بسهولة. بالورود ". يوفر هذا
المنشور نظرة عامة موجزة على Picocli 0.9.7 واستخدامها لتحليل وسيطات سطر الأوامر في
تعليمات Java البرمجية.
كما هو الحال في مكتبات معالجة سطر أوامر Java الأخرى الموضحة في هذه السلسلة ، فإن
picocli مفتوح المصدر . نظرًا لأنه يتم تنفيذ كل picocli في
ملف Java واحد ، يمكنك بسهولة استخدام شفرة المصدر مباشرة إذا كنت ترغب في ذلك. يؤكد موقع picocli على أن "السمة المميزة ل picocli هي أنه يسمح للمستخدمين بتشغيل التطبيقات التي تستخدم picocli دون الحاجة إلى picocli نفسها كاعتماد خارجي: توجد جميع التعليمات البرمجية المصدر في ملف واحد لتشجيع مؤلفي التطبيق على تضمينها في رمز مصدر البرنامج" إذا كنت تفضل استخدام picocli كمكتبة، في مخضرم مستودع لديه
ملف JAR مع مجموعة من الملفات المترجمة. الطبقة (يمثل picocli جافا ملف واحد، ولكن يحتوي على العديد من الطبقات الفرعية والشرح ق).
أسهل طريقة للحصول على فكرة عن طبيعة الملف الواحد ل Picocli هي إلقاء نظرة على الملف نفسه. كود المصدر ل CommandLine.java متاح في
صفحة تنزيل
Picocli . توضح
اللقطتان التاليتان الإخراج من
javap عند تنفيذ فئة CommandLine وعند تنفيذ أحد التعليقات التوضيحية الداخلية وإحدى الفئات الداخلية.


بغض النظر عما إذا كنا نقوم بتجميع CommandLine.java في ملف class / JAR الخاص بنا أو باستخدام JAR مدمج بالفعل من Maven ، فمن الواضح أن التعليمات البرمجية المصدر للتطبيق باستخدام Picocli هي نفسها. يتم تحقيق مرحلة "التحديد" في تحليل الوسيطات باستخدام Picocli من خلال التعليق التوضيحي على حقول المثيل التي ستخزن القيم المرتبطة بمعلمات سطر الأوامر. يظهر هذا في مقتطف الرمز أدناه.
Picocli مرحلة "التعريف" @Command( name="Main", description="Demonstrating picocli", headerHeading="Demonstration Usage:%n%n") public class Main { @Option(names={"-v", "--verbose"}, description="Verbose output?") private boolean verbose; @Option(names={"-f", "--file"}, description="Path and name of file", required=true) private String fileName; @Option(names={"-h", "--help"}, description="Display help/usage.", help=true) boolean help;
يوضح مثال الرمز أعلاه أن Picocli يسمح لك بتحديد أسماء علامات متعددة (في المثال الخاص بي ، أسماء أحادية الحرف ذات واصلة واحدة وأسماء متعددة الأحرف ذات واصلتين). يوضح هذا المثال أيضًا أنه يمكن تعيين true = true للمعلمات المطلوبة ، ويمكن تحديد help = true
للخيارات الإضافية ، مثل طباعة تفاصيل الاستخدام وإزالة الأخطاء المتعلقة بعدم وجود المعلمات المطلوبة. لاحظ أن Picocli 0.9.8 يضيف دعمًا إضافيًا لإصدار أنواع الرسائل المساعدة الأكثر تحديدًا.
يتم تنفيذ مرحلة "التحليل" في Picocli في
CommandLine.populateCommand (T ، String ...) ، حيث تمثل T مثيلًا للفئة مع الحقول التي بها تعليقات Picocli ، والخطوط المتبقية هي الوسيطات التي يجب تحليلها. يظهر هذا في مقتطف الرمز التالي.
مرحلة تحليل Picocli final Main main = CommandLine.populateCommand(new Main(), arguments);
تتكون مرحلة "الاقتراع" في Picocli من الوصول ببساطة إلى الحقول التي تحتوي على تعليقات Picocli للمثيل الذي تم تمريره إلى أسلوب CommandLine.populateCommand (T ، String ...) في مرحلة "التحليل". يظهر مثال بسيط لمثل هذا "المسح" في القائمة التالية.
مرحلة مسح Picocli out.println( "The provided file path and name is " + main.fileName + " and verbosity is set to " + main.verbose);
يعد عرض الرسائل المساعدة أو معلومات الاستخدام للمستخدم عند تحديد -h أو --help في سطر الأوامر أمرًا بسيطًا مثل "الاستقصاء" لحقل Picocli المشروح والذي تم تحديد help = true لتحديده إذا تم تعيين هذه القيمة المنطقية أم لا ، وإذا تم تثبيته ، اتصل بأحد طرق CommandLine.usage المحملة. اضطررت إلى استخدام أحد الإصدارات الثابتة من هذه الطريقة ، كما هو موضح في القائمة التالية.
دعم الرسائل / معلومات الاستخدام في Picocli if (main.help) { CommandLine.usage(main, out, CommandLine.Help.Ansi.AUTO); }
توضح لقطات الشاشة القليلة التالية تطبيقًا بسيطًا مكتوبًا باستخدام picocli. تعرض لقطة الشاشة الأولى نوع رسالة الخطأ وتتبع المكدس إذا كانت العلامة المطلوبة مفقودة. توضح لقطة الشاشة الثانية كيفية استخدام الأسماء الطويلة والقصيرة المحددة في التعليقات التوضيحية. تظهر الصورة الثالثة وظيفة عرض الرسائل المساعدة في العمل.



إحدى ميزات Picocli الإضافية ، التي لا تتوفر في العديد من مكتبات تحليل وسائط سطر أوامر Java الأخرى ، هي دعم
بناء الألوان أ. تحتوي القائمة الأولى لهذه المشاركة على أسطر محددة في التعليقات التوضيحية بـ @ | | @ بناء الجملة. في لقطة الشاشة أعلاه ، والتي توضح استخدام الرسائل المساعدة ، تم إرسال هذه الأحرف كما هي ، دون معالجة خاصة. ومع ذلك ، إذا قمت بتشغيل نموذج التعليمات البرمجية هذا في Cygwin ، فسوف أرى ما تفعله هذه العلامات.

في لقطة الشاشة أعلاه ، نرى أن Picocli قام تلقائيًا بتطبيق بناء الجملة اللوني (الأصفر والأبيض) على خيارات الرسائل المساعدة ، كما قام أيضًا بتطبيق بناء الجملة الغامق والمسطر على المناطق مع وصف الرسائل المساعدة حيث تم تطبيق بناء الجملة @ | | @.
فيما يلي ميزات Picocli إضافية يجب مراعاتها عند اختيار إطار عمل أو مكتبة للمساعدة في تحليل وسيطات سطر الأوامر في Java.
- Picocli هو مشروع مفتوح المصدر مرخص باستخدام Apache 2.0.
- لا يتطلب Picocli تنزيل مكتبات أو أطر عمل تابعة لجهات خارجية.
- يتم تضمين كل شفرة مصدر Picocli في ملف .java واحد ، ويمكن نسخ هذا الرمز ولصقه في نظام إدارة التكوين الخاص به وتجميعه مع باقي كود التطبيق ، مما يعني أنه حتى ملف Picocli JAR غير ضروري.
- يبلغ حجم الملف المصدر CommandLine.java (Picocli 0.9.7) ما يزيد قليلاً عن 3700 سطر (بما في ذلك المسافات والتعليقات) ويزن حوالي 200 كيلوبايت. يزن ملف picocli-0.9.7.jar حوالي 83 كيلوبايت.
- Picocli في الوقت المناسب ويتم تحديثه بشكل متكرر. تم إصدار الإصدار 0.9.8 أمس (بعد أن كتبت معظم هذا المنشور).
- يحتوي Picocli على وثائق مفصلة للغاية وهو من نواح عديدة أكثر حداثة من وثائق بعض مكتبات معالجة سطر أوامر Java الأخرى.
- دعم بنية ألوان Picocli سهل الاستخدام ، وتوثيق المساعدة في استخدام بنية اللون عبر الأنظمة الأساسية في قسم الأنظمة الأساسية المدعومة .
- يشبه استخدام التعليقات التوضيحية Picocli للحقول على مستوى المثيل استخدام التعليقات التوضيحية في بعض مكتبات معالجة سطر الأوامر الأخرى ولها نفس الفوائد.
- تعد الميزات الرئيسية لـ Picocli مريحة للغاية وسهلة التعلم ، ولكن Picocli يدعم أيضًا القدرة على تكوين العديد من جوانب معالجة سطر الأوامر باستخدام Picocli.
القوائم في هذا
المنشور متاحة بالكامل على
GitHub .
Picocli هي مكتبة مدعومة ومحدثة لتحليل وسائط سطر أوامر Java. يحتوي على العديد من الميزات والأساليب الجديدة من بعض مكتبات معالجة سطر الأوامر المتاحة الأخرى المكتوبة بلغة Java ، ولكن تمت إضافة بعض الميزات المختلفة إليها (مثل بناء الجملة والمكتبة بأكملها مغلفة في ملف Java مصدر واحد). Picocli سهل الاستخدام وجذاب في حد ذاته ، ولكن على الأرجح سيبرز بين المكتبات الأخرى لمطور فردي إذا كان هذا المطور يريد دعم بنية اللون أو القدرة على إضافة ملف شفرة المصدر إلى مشروع المطور دون ملفات JAR إضافية أو ملفات مجمعة. ملفات فئة.
النهاية
كما هو الحال دائمًا ، نحن في انتظار أسئلتك وتعليقاتك.