Ha most kezdi a programozás világát, és már kicsit belejött a Java-ba, hadd mondjam el, hogy a neten böngészik Találtam egy kiváló eszközt amit diákkoromban szerettem volna tudni, hiszen ez az eszköz, amiről ma beszélünk, a parancssori alkalmazások létrehozásának kereteként van pozícionálva.
Az eszköz, amelyről beszélni fogunk Picocli, amelyet a legegyszerűbb felhasználási módnak szántak gazdag parancssori alkalmazások létrehozásához amelyek a JVM-en belül és kívül is végrehajthatók.
Bár nem szükséges egy kicsit magyarázni, hogy mi a parancssori felület, azoknak az olvasóknak, akik még nem mélyültek el teljesen a programozásban, vagy akár csak autodidakta módon csinálták, és még mindig nem ismerik több kifejezést, elmondhatom. A parancssor vagy ismertebb nevén CLI egy olyan felhasználói felület, amely lehetővé teszi a felhasználók számára, hogy utasításokat adjanak egy programnak egy egyszerű szövegsorban (ezt a Linuxban mindennap megtesszük).
A CLI-k interaktívan használhatók, utasítások írásával valamilyen szövegbevitelre, vagy sokkal automatizáltabb módon (batch) is használhatók, parancsfájlból kiolvasva a parancsokat.
Itt jön képbe Picocli, amely egy Java nyelven írt könyvtár és keretrendszer, amely egy annotációs API-t és egy programozott API-t tartalmaz.
A picocli jellemzői, kiemelik, hogy:
- Segítséget nyújt a színekhez és az ANSI stílusokhoz
- TAB automatikus kiegészítése
- Beágyazott alparancsok.
- Támogatja a git-szerű alparancsokat és bármilyen opció előtagstílust
- Lehetővé teszi a POSIX-stílusú csoportosított rövid opciókat
- Egyedi típusú konverterek
- jelszó opciók
- A Picocli alkalmazások egyetlen fájlba fordíthatók
- Legyen nagyon kompakt, és ne legyen alapkód
- Egy annotációs processzorral rendelkezik, amely aktiválja a Graalt
- Támogatás a tagadható opciókhoz
- Speciális idézett értékek és érvcsoportok
- Könnyűvé teszi a parancssori felület irányelveinek követését.
- És több
Picocli érdekessége az amely – mint már a jellemzőinél említettük – az módot kínál a felhasználók futtatására picocli alapú alkalmazások anélkül, hogy a picocli könyvtárat külső függőségként igényelné: az összes forráskód egyetlen fájlban él.
Megemlítik, hogy:
A Picocli-alapú alkalmazások idő előtt natív képpé fordíthatók, rendkívül gyors indítási idővel és alacsonyabb memóriaigénnyel.
Ahogy a picocli működik, inicializálja az osztályt a parancssori argumentumokból, és a bemenetet erősen gépelt adatokká alakítja.
A Picocli különbséget tesz a megnevezett opciók és a pozícióparaméterek között, és lehetővé teszi mindkettő erős beírását. A többértékű mezők pontos számú paramétert vagy tartományt adhatnak meg (pl. 0..*, 1..2).
Támogatja az olyan leképezési beállításokat, mint a -Dkey1=val1 -Dkey2=val2, ahol a kulcs és az érték is biztonságosan írható. Az elemző nyomkövetés megkönnyíti a hibaelhárítást. A parancssori argumentumfájlok (@-files) lehetővé teszik az alkalmazások számára, hogy nagyon hosszú parancssorokat kezeljenek.
Meg kell jegyezni, hogy a picocli automatikus kiegészítése csak néhány shellben működik, mint például a Bash vagy a Zsh, mivel nem mindegyik támogatja ezt a funkciót.
Végül ha érdekel, hogy többet tudjon meg róla, ellenőrizheti a részleteket A következő linken.
Hogyan kell megvalósítani a pikoklit?
Azok számára, akik szeretnének picocli-t implementálni a projektjükbe, vagy új projektet indítani a picocli segítségével, ezt úgy tehetik meg, hogy letöltik a picocli legújabb verzióját a webhelyről. a következő link.
A megvalósítás pedig adott esetben elvégezhető, például a Mavenben
<dependency> <groupId>info.picocli</groupId> <artifactId>picocli</artifactId> <version>4.7.4</version> </dependency>
skála sbt
libraryDependencies += "info.picocli" % "picocli" % "4.7.4"
Borostyán
<dependency org="info.picocli" name="picocli" rev="4.7.4" />
Szőlő
@Grapes( @Grab(group='info.picocli', module='picocli', version='4.7.4') )
leiningen
[info.picocli/picocli "4.7.4"]
Építész
'info.picocli:picocli:jar:4.7.4'
jbang
//DEPS info.picocli:picocli:4.7.4
A dokumentáció, valamint annak minden információja megtekinthető innen a következő link.