picocli - อินเทอร์เฟซบรรทัดคำสั่งขนาดเล็กอันยิ่งใหญ่
Picocli มุ่งหวังที่จะเป็นวิธีใช้งานที่ง่ายที่สุดในการสร้างแอปพลิเคชันบรรทัดคำสั่งที่หลากหลายซึ่งสามารถทำงานทั้งในและนอก JVM พิจารณา picocli? ตรวจสอบสิ่งที่ผู้ใช้มีความสุขพูดเกี่ยวกับ picocli
Picocli เป็นไลบรารีและเฟรมเวิร์กสมัยใหม่ที่เขียนด้วยภาษา Java ซึ่งมีทั้ง API คำอธิบายประกอบและ API แบบเป็นโปรแกรม มีความช่วยเหลือในการใช้งานเกี่ยวกับสีและสไตล์ ANSI การเติมข้อความอัตโนมัติของ TAB และคำสั่งย่อยที่ซ้อนกัน ในไฟล์เดียว คุณจึงสามารถรวมไว้ ในฟอร์มต้นฉบับ ได้ ซึ่งช่วยให้ผู้ใช้สามารถเรียกใช้แอปพลิเคชันที่ใช้ picocli ได้โดยไม่ต้องอาศัย picocli เป็นการพึ่งพาภายนอก
แอปพลิเคชันที่ใช้ Picocli สามารถคอมไพล์เป็นรูปภาพเนทิฟล่วงหน้าได้ โดยมีเวลาเริ่มต้นที่รวดเร็วมากและความต้องการหน่วยความจำต่ำกว่า ซึ่งสามารถแจกจ่ายเป็นไฟล์ปฏิบัติการไฟล์เดียวได้ Picocli มาพร้อมกับโปรเซสเซอร์คำอธิบายประกอบที่ Graal เปิดใช้งาน jar ของคุณโดยอัตโนมัติในระหว่างการคอมไพล์
แอปพลิเคชัน Picocli มีขนาดกะทัดรัดมากโดยไม่ต้องใช้โค้ดสำเร็จรูป: คำสั่งของคุณ (หรือคำสั่งย่อย) สามารถดำเนินการได้ด้วยโค้ดบรรทัดเดียว เพียงใช้ Runnable
หรือ Callable
หรือใส่ตรรกะทางธุรกิจของคำสั่งของคุณในเมธอด @Command
-annotated
Picocli ทำให้การปฏิบัติตามแนวทางอินเทอร์เฟซบรรทัดคำสั่งเป็นเรื่องง่าย
วิธีการทำงาน: ใส่คำอธิบายประกอบให้กับคลาสของคุณและ picocli เริ่มต้นคลาสจากอาร์กิวเมนต์บรรทัดคำสั่ง โดยแปลงอินพุตเป็นข้อมูลที่พิมพ์อย่างเข้มงวด รองรับคำสั่งย่อยที่มีลักษณะคล้าย git (และคำสั่งย่อยที่ซ้อนกัน), รูปแบบคำนำหน้าตัวเลือกใดๆ, ตัวเลือกแบบสั้นที่จัดกลุ่มสไตล์ POSIX, ตัวแปลงประเภทแบบกำหนดเอง, ตัวเลือกรหัสผ่าน และอื่นๆ
Picocli แยกความแตกต่างระหว่างตัวเลือกที่มีชื่อและพารามิเตอร์ตำแหน่ง และอนุญาตให้พิมพ์ ทั้งสองอย่าง ได้อย่างชัดเจน ช่องที่มีหลายค่าสามารถระบุจำนวนพารามิเตอร์หรือช่วงที่แน่นอนได้ (เช่น 0..*
, 1..2
) รองรับตัวเลือกแผนที่เช่น -Dkey1=val1 -Dkey2=val2
ซึ่งสามารถพิมพ์ทั้งคีย์และค่าได้ การติดตาม Parser ช่วยอำนวยความสะดวกในการแก้ไขปัญหา ไฟล์อาร์กิวเมนต์บรรทัดคำสั่ง (@-files) อนุญาตให้แอปพลิเคชันจัดการบรรทัดคำสั่งที่ยาวมาก
สร้างความช่วยเหลือการใช้งานและเวอร์ชันความช่วยเหลือที่สวยงามและปรับแต่งได้ง่าย โดยใช้สี ANSI หากเป็นไปได้ ต้องการ Java 5 เป็นอย่างน้อย แต่ได้รับการออกแบบมาเพื่ออำนวยความสะดวกในการใช้ Java 8 lambdas ทดสอบกับ Java เวอร์ชันทั้งหมดระหว่าง 5 ถึง 18-ea (รวม)
แอปพลิเคชันบรรทัดคำสั่งที่ใช้ Picocli สามารถเติมข้อความอัตโนมัติของ TAB ได้ โดยแสดงให้ผู้ใช้เห็นแบบโต้ตอบว่ามีตัวเลือกและคำสั่งย่อยใดบ้าง เมื่อตัวเลือกมี completionCandidates
หรือมีประเภท enum
การเติมข้อความอัตโนมัติยังสามารถแนะนำค่าของตัวเลือกได้อีกด้วย Picocli สามารถสร้างสคริปต์ที่สมบูรณ์สำหรับ bash และ zsh และเสนอโมดูล picocli-shell-jline2
และ picocli-shell-jline3
พร้อมการใช้งาน JLine Completer
สำหรับการสร้างแอปพลิเคชันเชลล์เชิงโต้ตอบ
คุณลักษณะเฉพาะใน picocli รวมถึงการสนับสนุนตัวเลือกที่ปฏิเสธได้ ค่าที่ยกมาขั้นสูง และกลุ่มอาร์กิวเมนต์ กลุ่มอาร์กิวเมนต์สามารถใช้เพื่อสร้างตัวเลือกที่ไม่เกิดร่วมกัน ตัวเลือกที่ขึ้นอยู่กับกันและกัน ส่วนตัวเลือกในข้อความช่วยเหลือการใช้งาน และการทำซ้ำอาร์กิวเมนต์แบบผสม เช่น ([-a=<a> -b=<b> -c=<c>] (-x | -y | -z))...
สำหรับกรณีการใช้งานขั้นสูง แอปพลิเคชันสามารถเข้าถึงโมเดลออบเจ็กต์คำสั่ง picocli ด้วยคำอธิบายประกอบ @Spec
และใช้การประมวลผลพารามิเตอร์แบบกำหนดเองสำหรับพารามิเตอร์ตัวเลือก หากตรรกะในตัวไม่เพียงพอ
แอปพลิเคชันที่ใช้ Picocli สามารถผสานรวมกับคอนเทนเนอร์ Dependency Injection ได้อย่างง่ายดาย เฟรมเวิร์กไมโครเซอร์วิสของ Micronaut มีการรองรับ picocli ในตัว Quarkus มีโหมดคำสั่งพร้อมส่วนขยาย Picocli เพื่ออำนวยความสะดวกในการสร้างแอปพลิเคชัน CLI ที่ใช้ picocli ด้วย Quarkus Picocli มาพร้อมกับโมดูล picocli-spring-boot-starter
ซึ่งประกอบด้วยการกำหนดค่าอัตโนมัติ PicocliSpringFactory
และ Spring Boot เพื่อใช้ Spring dependency injector ในแอปพลิเคชันบรรทัดคำสั่ง picocli ของคุณ คู่มือผู้ใช้มีตัวอย่างการใช้งานร่วมกับ Guice, Spring Boot, Micronaut, Quarkus และคอนเทนเนอร์ที่เป็นไปตามข้อกำหนด CDI 2.0 (JSR 365)
ข่าวประชาสัมพันธ์
- ข่าวประชาสัมพันธ์ทั้งหมด
- ล่าสุด: บันทึกประจำรุ่น 4.7.6
- เก่ากว่า: บันทึกประจำรุ่น Picocli 4.0
- เก่ากว่า: บันทึกประจำรุ่น Picocli 3.0
- เก่ากว่า: บันทึกประจำรุ่น Picocli 2.0
เอกสารประกอบ
- 4.x คู่มือผู้ใช้: https://picocli.info
- 4.x คู่มือฉบับย่อ
- 4.x API Javadoc
- ดูตัวอย่าง: Modular Javadoc สำหรับสิ่งประดิษฐ์ทั้งหมด (4.7.6-SNAPSHOT)
- การเติมข้อความอัตโนมัติของบรรทัดคำสั่ง
- API แบบเป็นโปรแกรม
- คำถามที่พบบ่อย
- การรวบรวม GraalVM AOT เป็นรูปภาพเนทิฟ
แก่กว่า
3.x คู่มือผู้ใช้ 3.x คู่มือฉบับย่อ 3.x API Javadoc 2.x คู่มือผู้ใช้ 2.x API Javadoc 1.x คู่มือผู้ใช้
บทความและการนำเสนอ
ภาษาอังกฤษ
- 6 สิ่งที่คุณสามารถทำได้กับ JBang แต่ทำไม่ได้กับ Shell (2022-02-28) โดย F.Marchioni
- [VIDEO]Kotlin, CLIs และ StarWars! - ข้อมูลเบื้องต้นเกี่ยวกับการสร้างแอปพลิเคชัน CLI ด้วย Kotlin โดยใช้ Picocli (2022-02-05) โดย Julien Lengrand-Lambert
- [VIDEO] เติม Java CLI อัตโนมัติโดยใช้ Picocli (2022-01-24) โดย raksrahul
- Picocli – ความง่ายสำหรับการโต้แย้ง CLI ใน Java (2021-10-27) โดย agamboa
- การสร้างอินเทอร์เฟซบรรทัดคำสั่งด้วย Kotlin โดยใช้ picoCLI (2021-09-23) โดย Julien Lengrand-Lambert
- [VIDEO]สร้างแอปพลิเคชัน Java CLI ด้วย picocli (14-09-2021) โดย coder4life
- PICOCLI (30-06-2564) โดย Sybren Boland
- พิโคคลี | สร้างแอปพลิเคชัน Kotlin /JVM CLI แรกของคุณด้วย GraalVM (2021-02-13) โดย manserpatrice
- [วิดีโอ] การสร้างปลั๊กอิน kubectl ด้วย Quarkus, picocli, fabric8io และ jbang (22-01-2021-01-22) โดย Sébastien Blanc
- [วิดีโอ] J-Fall Virtual 2020: Julien Lengrand - ข้อมูลเบื้องต้นเกี่ยวกับการสร้างแอปพลิเคชัน CLI โดยใช้ picoCLI (2020-12-07) โดย Julien Lengrand-Lambert นี่คือการพูดคุยที่ได้รับคะแนนสูงสุดสำหรับ @nljug #jfall virtual 2020! ยินดีด้วยจูเลียน!
- แบ่งหน้าผลลัพธ์ในแอปพลิเคชันบรรทัดคำสั่งโดยใช้ picoCLI (2020-11-17) โดย Julien Lengrand-Lambert
- แอปพลิเคชัน CLI พร้อม GraalVM Native Image (13-11-2020) โดย Oleg Šelajev
- คำสั่งย่อย Picocli - หนึ่งโปรแกรม หลากหลายวัตถุประสงค์ (2020-09-22) โดย Jonas Andersen
- Native CLI พร้อม Picocli และ GraalVM (2020-08-20) โดย jbebar
- วิธีสร้างแอป CLI ใน Java โดยใช้ jbang และ picocli (2020-08-13) โดย Matthew Gilliard
- การสร้าง GitHub Dependents Scraper ด้วย Quarkus และ Picocli (31-07-2020) โดย Marc Nuri
- สร้าง Java CLI ที่เหมาะสม (2020-07-27) โดย Andreas Textor
- [วิดีโอ] (วิดีโอที่ผลิตอย่างดีอีกรายการหนึ่งโดย Szymon Stepniak) การใช้ OAuth 2.0 ในแอปบรรทัดคำสั่ง Java โดยใช้ Micronaut, Picocli และ GraalVM (23-07-2020) โดย Szymon Stepniak (ช่อง YouTube)
- Micronaut, Picocli และ GraalVM (08-07-2020) โดย Szymon Stepniak
- [วิดีโอ] (แนะนำที่ผลิตและให้ข้อมูลอย่างดีเยี่ยม!) การสร้างแอปบรรทัดคำสั่งด้วย Java 11, Micronaut, Picocli และ GraalVM (01-07-2020) โดย Szymon Stepniak (ช่อง YouTube)
- [AUDIO] Scala Valentines #2 (2020-06-21) Podcast พูดถึง picocli (จาก 18:11)
- จะสร้างเครื่องมือบรรทัดคำสั่งโดยใช้ Java ได้อย่างไร (2020-06-18) โดย วีเจย์ SRJ.
- เครื่องมือบรรทัดคำสั่งกับ Quarkus และ Picocli (2020-06-08) โดย Dmytro Chaban
- คู่มือ Quarkus สำหรับโหมดคำสั่ง Quarkus พร้อม picocli ต้องขอบคุณส่วนขยาย picocli โดย Michał Górniewski ที่รวมอยู่ใน Quarkus 1.5 (2020-06-03)
- ภาพเนทิฟด้วย Micronaut และ GraalVM (2020-06-01) โดย Λ: Olivier Revial
- แอปพลิเคชัน CLI กับ Micronaut และ Picocli (2020-06-01) โดย Λ: Olivier Revial
- การแนะนำ Picocli - การแยกวิเคราะห์บรรทัดคำสั่ง Java สมัยใหม่ (2020-05-19) โดย Jonas Andersen
- การสร้าง Native Covid19 Tracker CLI โดยใช้ Java, PicoCLI & GraalVM (2020-05-11) โดย Mohammed Aboullaite
- โหมด Quarkus Command พร้อม Picocli (27-04-2020) โดย Dmytro Chaban
- การสร้างเครื่องมือ CLI ด้วย Scala, Picocli และ GraalVM (2020-03-09) โดย Naoki Takezoe
- การสร้าง Java CLI ดั้งเดิมด้วย GraalVM, Picocli และ Gradle (08-03-2020) โดย Mitch Seymour
- สร้างแอป Native CLI ที่ยอดเยี่ยมใน Java ด้วย Graalvm และ Picocli (2020-03-07)
- Picocli Structured Objects (10-09-2019) โดย Philipp Hanslovsky อธิบายวิธีใช้การสนับสนุนของ picocli สำหรับการทำซ้ำกลุ่มอาร์กิวเมนต์เพื่อเพิ่มหรือกำหนดค่าวัตถุที่มีโครงสร้างจากบรรทัดคำสั่ง
- สร้างโปรแกรมบรรทัดคำสั่ง Java ด้วย Picocli|Baeldung (2019-05-07) โดย François Dupire
- ทัวร์รอบหมุนของนิตยสาร picocli JAX "การให้ความสำคัญกับเครื่องมือ Java" (2019-04-08)
- ข้อมูลเบื้องต้นเกี่ยวกับ PicoCLI (2019-02-10) โดย devop
- Corda CLI UX (ประสบการณ์ผู้ใช้) Guide (2018 โดย R3 Limited) ให้คำแนะนำที่เป็นประโยชน์
- พัฒนาเครื่องมือ CLI โดยใช้สคริปต์ Groovy (2018-10-26) โดย Chinthaka Dinadasa
- การย้ายจาก Commons CLI ไปยัง picocli คุณจะไม่เสียใจเลย! :-) (รวมถึง: DZone และ Java Code Geeks)
- Groovy 2.5 CliBuilder Renewal (รวมถึงใน blogs.apache.org) ในสองส่วน: ส่วนที่ 1 (รวมถึง: DZone, Java Code Geeks), ส่วนที่ 2 (รวมถึง: DZone, Java Code Geeks)
- คู่มือผู้ใช้ Micronaut สำหรับการรันไมโครเซอร์วิสแบบสแตนด์อโลนด้วย picocli
- อินเทอร์เฟซบรรทัดคำสั่ง Java (ตอนที่ 30): การสังเกตโดย Dustin Marx เกี่ยวกับ picocli 2.0.1 (รวมถึง: DZone, Java Code Geeks)
- อินเทอร์เฟซบรรทัดคำสั่ง Java (ตอนที่ 10): Picocli โดย Dustin Marx เกี่ยวกับ picocli 0.9.7 (รวมถึง: DZone, Java Code Geeks)
- Picocli 2.0: สคริปต์ Groovy บนสเตียรอยด์ (รวมถึง: DZone, Java Code Geeks)
- Picocli 2.0: ทำได้มากขึ้นด้วยค่าใช้จ่ายน้อยลง (รวมถึง: DZone, Java Code Geeks)
- ประกาศ picocli 1.0 (รวมถึง: DZone)
รัสเซีย
- Выбор необходимых опций Picocli на основе основного варианта (2020-05-07)
- Интерфейсы командной строки Java: picocli (2018-08-06): Russian Translation by MaxRokatansky of Dustin Marx' บล็อกโพสต์
สเปน
- picocli, un poderoso framework สำหรับ creación de aplicaciones de línea de comandos (2023-09-09) โดย Darkcrizt
- picocli, un poderoso framework สำหรับ creación de aplicaciones de línea de comandos (2023-09-09) โดย Darkcrizt
- Quarkus + Picocli: Web scaper สำหรับ proyectos พิเศษที่ขึ้นอยู่กับ GitHub (15-08-2020) โดย Marc Nuri
- Quarkus - บทนำ: picocli (2020-06-15) โดย Gerardo Arroyo
- [วิดีโอ] Picocli - ตัวอย่าง Spring Boot (24-05-2020) แนะนำสั้นๆ 7 นาทีโดย Gonzalo H. Mendoza
ฝรั่งเศส
- แอปพลิเคชันมือถือ: แอปพลิเคชันที่ยอดเยี่ยม CLI Natives en Java avec Graalvm et Picocli (2020-05-07) การแปล Build Great Native CLI Apps ใน Java ด้วย Graalvm และ Picocli โดย bouf1450
- [วิดีโอ] Des applications en ligne de commande avec Picocli et GraalVM (N. Peters) (2019-05-07): การนำเสนอ 15 นาทีโดย Nicolas Peters ระหว่าง Devoxx FR สไลด์การนำเสนอมีอยู่ใน GitHub
ภาษาโปรตุเกส
- ใช้งานแอปพลิเคชัน CLI บน Java และ Graalvm e Picocli (28-08-2563): การแปลภาษาโปรตุเกสของ Build Great Native CLI Apps ใน Java ด้วย Graalvm และ Picocli ขอบคุณ Rodrigo Ap G Batista
- [วิดีโอ] Quarkus #40: Command Mode com Picocli (23-06-2020): การนำเสนอความยาว 13 นาทีโดย Vinícius Ferraz (@viniciusfcf)
日本語
- แอปพลิเคชัน CLI พร้อมการแปล GraalVM Native Image (2020-11-21) โดย Logico_jp จากโพสต์ของ Oleg Šelajev
- Picocli + Kotlin + ปลั๊กอิน graalvm-native-image โพสต์ในบล็อกของ mike-neck (24-04-2020) โดย mike-neck (บน Twitter)
- pythonのArgumentParserような使いheart地!picocliのご紹介 (2020-04-15) โดย @astamuseLab
- Java のkoマンドラインアプラケーしョン向けのфレームワーク、picocliで遊ぶ (2020-03-07) บล็อกโพสต์โดย かずひら
- KuromojiのCLIkoマンドとpicocliとGraalVM (2020-02-28) โพสต์ในบล็อกโดย @johtani
- GraalVM, Picocli และ Java でとしめくネイテイブECOマンドラインアプリを作ろう (23-11-2562) สไลด์สำหรับการนำเสนอของฉันในการประชุมฤดูใบไม้ร่วง JJUG CCC 2019 ของ Japan Java User Group
- Picocliを使用してJavakoマンドラインプログラムを作成スロ - 開発者ドキュメント (2019-10-18)
- GraalVM และ Picocliで JavaのネイテイブECOマンドラインアプリを作ろう (2019-09-06) Slides for my lightning talk Presentation at 【東京】JJUG ナイトセミナー: ビールド手にLT大会9/6 (金)
- Picocli+Spring Boot でECOマンドラインアプラケーしョンを作成してみrun (2019-07-20) โดย kanんがrunーさんの日記.
- GraalVM บนรูปภาพเนทีฟ を使って Java で爆速 Lambda の夢を見る (2019-05-02) โดย @kencharos
中文
- Java命令行界เลดี้(第10部分):picocli (2020-06-07) แปลโดย dnc8371
- 如何借助 Graalvm 和 Picocli 构建 Java 编写的原生 CLI 应用 (2020-03-26): การแปลภาษาจีนของ Build Great Native CLI Apps ใน Java พร้อม Graalvm และ Picocli ต้องขอบคุณ 张卫滨
- 从Commons CLI迁移到Picocli (2019-03-13): การแปลภาษาภาษาจีนของ Migrating from Commons CLI ไปยัง picocli ขอบคุณ genghaihua
- Picocli 2.0: เตียรอยด์ที่มีฤทธิ์แรง
- Picocli 2.0: 以少求多
รายชื่อผู้รับจดหมาย
เข้าร่วมกลุ่ม picocli Google หากคุณสนใจที่จะพูดคุยเรื่องที่เกี่ยวข้องกับ picocli และรับประกาศเกี่ยวกับการเปิดตัวใหม่
เครดิต
Reallinfo ออกแบบโลโก้ picocli! ขอบคุณมาก!
ภาระผูกพัน
โปรเจ็กต์นี้เป็นไปตามการกำหนดเวอร์ชันเชิงความหมายและปฏิบัติตาม Zero Bugs Commitment |
---|
การรับเลี้ยงบุตรบุญธรรม
- Picocli เป็นส่วนหนึ่งของ Groovy แล้ว จาก Groovy 2.5 เครื่องมือบรรทัดคำสั่ง Groovy ทั้งหมดเป็นแบบ picocli และ picocli เป็นตัวแยกวิเคราะห์ที่สำคัญสำหรับ CliBuilder DSL ของ Groovy
- Picocli เป็นส่วนหนึ่งของ Micronaut แล้ว Micronaut CLI ได้รับการเขียนใหม่ด้วย picocli และ Micronaut ได้ทุ่มเทการสนับสนุนสำหรับการใช้งานไมโครเซอร์วิสแบบสแตนด์อโลนด้วย picocli ดูเพิ่มเติมที่ คู่มือ Micronaut Picocli
- Quarkus มีโหมด Command พร้อม picocli แล้ว
- ตอนนี้ Picocli เป็นส่วนหนึ่งของ JUnit 5 แล้ว JUnit 5.3 ย้าย
ConsoleLauncher
จาก jopt-simple ไปเป็น picocli เพื่อรองรับ @-files (ไฟล์อาร์กิวเมนต์); ซึ่งจะช่วยให้ผู้ใช้ที่ต้องการระบุการทดสอบจำนวนมากบนบรรทัดคำสั่งและพบข้อจำกัดของระบบ - ตอนนี้ Debian มีแพ็คเกจ libpicocli-java ขอขอบคุณ: มิโรสลาฟ คราเวซ.
- Picocli ใช้ใน Intuit Karate แบบสแตนด์อโลน JAR / ปฏิบัติการ
- Picocli เป็นส่วนหนึ่งของ Ballerina Ballerina ใช้ picocli สำหรับยูทิลิตี้บรรทัดคำสั่งทั้งหมด
- Picocli ใช้ใน CheckStyle แบบสแตนด์อโลน JAR / ปฏิบัติการได้จาก Checkstyle 8.15
- Picocli รวมอยู่ในรายการ OpenJDK Quality Outreach ของโปรเจ็กต์ซอฟต์แวร์โอเพ่นซอร์สฟรี (FOSS) ที่ทดสอบกับรุ่น OpenJDK อย่างแข็งขัน
- Picocli ใช้ในเครื่องมือบรรทัดคำสั่ง Apache Hadoop Ozone/HDDS, CLI มาตรฐาน Apache Hive, Apache Ignite TensorFlow และ Apache Sling Feature Model Converter
- Picocli มีรายชื่ออยู่บน StackShare โปรดเพิ่มลงในสแต็กของคุณและเพิ่ม/โหวตว่าทำไมคุณถึงชอบ picocli!
- Picocli ใช้ใน Pinterest ktlint
- Picocli ใช้ใน Spring IO nohttp-cli
- ไลบรารี MinecraftPicocli อำนวยความสะดวกในการใช้ picocli ใน Minecraft Forge
- Simple Java Mail นำเสนอ CLI ที่ใช้ picocli แล้ว
- jbang ไม่เพียงแต่ใช้ picocli ภายในเท่านั้น แต่ยังมีเทมเพลต CLI เพื่อสร้างสคริปต์เริ่มต้น: ใช้
jbang --init=cli helloworld.java
เพื่อสร้างตัวอย่างสคริปต์ jbang ที่เปิดใช้งาน picocli ดู โรคแอสไซนีมา. - Picocli เป็นไลบรารีหลักที่ใช้ในเทมเพลต cli-java ของ CookieTemple สำหรับการสร้างไฟล์ปฏิบัติการ CLI แบบเนทีฟของ GraalVM ใน Java ดูตัวอย่างนี้
- Picocli ได้รับการกล่าวถึงใน Command Line Interface Guidelines
ดีใจที่ได้เห็นผู้คนใช้ picocli มากขึ้น เราคงต้องทำสิ่งที่ถูกต้อง -
มีส่วนร่วมด้วยการช่วยส่งเสริม picocli
ถ้าคุณชอบ picocli ช่วยผู้อื่นค้นพบ picocli:
ง่ายและได้ผล ?
- มอบดาวให้กับ picocli บน GitHub!
- โหวตคำตอบ StackOverflow ของฉันเป็น "ฉันจะแยกอาร์กิวเมนต์บรรทัดคำสั่งใน Java ได้อย่างไร"
- โหวตตอบ Quora ของฉันเป็น "วิธีที่ดีที่สุดในการแยกอาร์กิวเมนต์บรรทัดคำสั่งด้วย Java คืออะไร"
กระจายความสุข! -
- ทวีตเกี่ยวกับ picocli! คุณชอบอะไรเกี่ยวกับเรื่องนี้? มันช่วยคุณได้อย่างไร? มันแตกต่างจากทางเลือกอื่นอย่างไร?
- กล่าวถึงว่าโครงการของคุณใช้ picocli ในเอกสารประกอบของโครงการของคุณ
- แสดงว่าโปรเจ็กต์ GitHub ของคุณใช้ picocli โดยมีป้ายสถานะนี้ใน README.md ของคุณ:
[![picocli](https://img.shields.io/badge/picocli-4.7.6-green.svg)](https://github.com/remkop/picocli)
เทศนามัน! -
- บางทีวิธีที่มีประสิทธิภาพที่สุดในการแสดงให้ผู้คนเห็นว่า Picocli สามารถทำให้ชีวิตของพวกเขาง่ายขึ้นได้อย่างไรคือการเขียนโพสต์ในบล็อกหรือบทความ หรือแม้แต่ทำวิดีโอ!
ตัวอย่าง
ใส่คำอธิบายประกอบฟิลด์ด้วยชื่อพารามิเตอร์บรรทัดคำสั่งและคำอธิบาย เลือกใช้ Runnable
หรือ Callable
เพื่อมอบหมายการจัดการข้อผิดพลาดและการขอความช่วยเหลือในการใช้งานหรือความช่วยเหลือด้านเวอร์ชันให้กับ picocli ตัวอย่างเช่น:
import picocli . CommandLine ;
import picocli . CommandLine . Option ;
import picocli . CommandLine . Parameters ;
import java . io . File ;
@ Command ( name = "example" , mixinStandardHelpOptions = true , version = "Picocli example 4.0" )
public class Example implements Runnable {
@ Option ( names = { "-v" , "--verbose" },
description = "Verbose mode. Helpful for troubleshooting. Multiple -v options increase the verbosity." )
private boolean [] verbose = new boolean [ 0 ];
@ Parameters ( arity = "1..*" , paramLabel = "FILE" , description = "File(s) to process." )
private File [] inputFiles ;
public void run () {
if ( verbose . length > 0 ) {
System . out . println ( inputFiles . length + " files to process..." );
}
if ( verbose . length > 1 ) {
for ( File f : inputFiles ) {
System . out . println ( f . getAbsolutePath ());
}
}
}
public static void main ( String [] args ) {
// By implementing Runnable or Callable, parsing, error handling and handling user
// requests for usage help or version help can be done with one line of code.
int exitCode = new CommandLine ( new Example ()). execute ( args );
System . exit ( exitCode );
}
}
ใช้ Runnable
หรือ Callable
และคำสั่งของคุณสามารถดำเนินการได้ในโค้ดบรรทัดเดียว ตัวอย่างด้านบนใช้เมธอด CommandLine.execute
เพื่อแยกวิเคราะห์บรรทัดคำสั่ง จัดการข้อผิดพลาด จัดการคำขอสำหรับการใช้งานและวิธีใช้เวอร์ชัน และเรียกใช้ตรรกะทางธุรกิจ แอปพลิเคชันสามารถเรียก System.exit
ด้วยรหัสทางออกที่ส่งคืนเพื่อส่งสัญญาณถึงความสำเร็จหรือความล้มเหลวของผู้โทร
$ java Example -v inputFile1 inputFile2
2 files to process...
เมธอด CommandLine.execute
จะพิมพ์ข้อความวิธีใช้การใช้งานโดยอัตโนมัติ หากผู้ใช้ร้องขอความช่วยเหลือหรือเมื่ออินพุตไม่ถูกต้อง
ซึ่งสามารถปรับแต่งได้หลายวิธี ดูส่วนคู่มือผู้ใช้เกี่ยวกับการดำเนินการคำสั่งสำหรับรายละเอียด
ความช่วยเหลือในการใช้งานเกี่ยวกับสีและสไตล์ ANSI
สี สไตล์ ส่วนหัว ส่วนท้าย และส่วนหัวของส่วนต่างๆ สามารถปรับแต่งได้อย่างง่ายดายด้วยคำอธิบายประกอบ ตัวอย่างเช่น:
ดูซอร์สโค้ด
API ความช่วยเหลือในการใช้งาน
คำอธิบายประกอบ Picocli นำเสนอวิธีปรับแต่งข้อความช่วยเหลือการใช้งานได้หลายวิธี
หากคำอธิบายประกอบยังไม่เพียงพอ คุณสามารถใช้ Help API ของ picocli เพื่อปรับแต่งเพิ่มเติมได้ ตัวอย่างเช่น แอปพลิเคชันของคุณสามารถสร้างความช่วยเหลือเช่นนี้ด้วยเค้าโครงที่กำหนดเอง:
ดูซอร์สโค้ด
ดาวน์โหลด
คุณสามารถเพิ่ม picocli เป็นการพึ่งพาภายนอกให้กับโปรเจ็กต์ของคุณ หรือคุณสามารถรวมเป็นแหล่งที่มาก็ได้ ดูซอร์สโค้ด คัดลอกและวางลงในไฟล์ชื่อ CommandLine.java
เพิ่มลงในโปรเจ็กต์ของคุณ แล้วสนุกได้เลย!
เกรเดิล
implementation 'info.picocli:picocli:4.7.6'
มาเวน
<dependency>
<groupId>info.picocli</groupId>
<artifactId>picocli</artifactId>
<version>4.7.6</version>
</dependency>
สกาลา SBT
libraryDependencies += "info.picocli" % "picocli" % "4.7.6"
ไอวี่
<dependency org="info.picocli" name="picocli" rev="4.7.6" />
องุ่น
@Grapes (
@ Grab ( group = ' info.picocli ' , module = ' picocli ' , version = ' 4.7.6 ' )
)
ไลนิงเกน
[info.picocli/picocli "4.7.6"]
ตัวสร้าง
'info.picocli:picocli:jar:4.7.6'
เจบัง
//DEPS info.picocli:picocli:4.7.6