मुझे पता है कि इस सवाल को कई बार यहां और कहीं और पूछा गया है क्योंकि मैं उत्तर खोज रहा हूं। हालांकि, यह अभी भी मुझे पहेली करता है कि कमांड लाइन पार्सर लाइब्रेरी इस सामान्य उपयोग परिदृश्य को क्यों प्रदान नहीं करती है, जहां मेरे पास उप-सामग्रियों का समूह है, प्रत्येक उपसमंद के पास आवश्यक और वैकल्पिक तर्कों का सेट है। गिट/एसवीएन में इसी प्रकार का निर्माण पाया जा सकता है, हालांकि उनके मामले में, अगर मैं गलत नहीं हूं तो सबकॉमांड कमांड एक स्टैंडअलोन प्रोग्राम है।कमांड लाइन पार्सर और उपसमूह और समूह की कमी?
संक्षेप में, मैं क्या देख रहा हूँ एक आसान तरीका है:
top_command subcmd_A [ command A's options ....]
top_command subcmd_B [ command B's options ....]
...
जावा की दुनिया में, दोनों अक्सर उल्लेख किया लाइब्रेरी Apache कमान CLI और JSAP हैं। मुझे नहीं लगता कि उनमें से कोई भी इसे ध्यान में रखता है - यद्यपि आप शायद फिट करने के लिए बहुत कुछ बदल सकते हैं और अनुकूलित कर सकते हैं ... लेकिन एक विकल्प को परिभाषित करने का मूल प्रवाह, रजिस्टर ... फिर अंत में, उन सभी को पार्स करें ' टी को विभिन्न उप-सामग्रियों के साथ मामले पर विचार करने के लिए देखा गया है, सत्यापन और पार्सर को अलग-अलग तरीके से व्यवहार करने की आवश्यकता है।
शायद यहां सामान्य ज्ञान यह है कि यह बहुत ही विशिष्ट अनुप्रयोग है और इसे स्वयं को संभालने के लिए एप्लिकेशन को छोड़ दिया जाना चाहिए। एक तरीका जिस पर मैं सोच सकता हूं कि बेसकॉमैंड क्लास को परिभाषित करना है, और प्रत्येक उपसमंड इसे विस्तारित करता है और स्वयं को पंजीकृत करता है ... इसे आसान प्रबंधन के लिए तोड़ने का एक तरीका है। यदि कोई परिपक्व ढांचा ऐसा कर सकता है, तो मैं यहां किसी भी सूचक की सराहना करता हूं।
हालांकि वर्तमान पार्सर क्षमता की मेरी समझ के बारे में मैं गलत हो सकता हूं, लेकिन किसी अंतर्दृष्टि की बहुत सराहना की जाती है।
ओलिवर
मुझे नहीं पता कि मैं इस पुस्तकालय को कैसे चूक गया, लेकिन यह दिलचस्प लग रहा है। धन्यवाद। – Oliver