我知道這個問題在這裏和其他地方被問過很多次,因爲我正在尋找答案。然而,它仍令我困惑,爲什麼命令行解析器庫不提供這種常見的使用場景,我有一組子命令,每個子命令都有自己的一組必需和可選參數。類似的構造可以在git/svn中找到,但是在他們的情況下,如果我沒有弄錯,子命令是獨立的程序。命令行分析器和缺少子命令和分組?
總之,我所尋求的是一種簡單的方法:
top_command subcmd_A [ command A's options ....]
top_command subcmd_B [ command B's options ....]
...
在Java的世界裏,兩人經常提到的庫是Apache的命令CLI和司法制度評估方案。我沒有看到他們中的任何一位有這樣的想法 - 雖然你可能會調整和定製很多以適應......但是定義一個選項的基本流程,註冊......然後在最後解析它們都不會「如果考慮到不同子命令的情況,驗證和解析器需要以不同的方式運行。
也許這裏的常識是這個應用程序太具體,應該留給應用程序本身處理。我可以想到的一種方法是定義一個BaseCommand類,並且每個子命令都會擴展它並註冊它們自己......以便將其分解以便於管理。如果任何成熟的框架可以做到這一點,我會欣賞任何指針在這裏。
雖然我對當前解析器功能的理解可能是錯誤的,但非常感謝您的任何洞察。
奧利弗
我不知道我錯過了這個圖書館,但它看起來很有趣。謝謝。 – Oliver