11= picocli - a mighty tiny command line interface
22//:author: Remko Popma
334- :revnumber: 4.7.4
4+ :revnumber: 4.7.5-SNAPSHOT
55:revdate: 2023-06-03
66:toc: left
77:numbered:
@@ -120,7 +120,7 @@ class CheckSum implements Callable<Integer> {
120120[[CheckSum-App-Groovy]]
121121[source,groovy,role="secondary"]
122122----
123- @Grab('info.picocli:picocli-groovy:4.7.4 ')
123+ @Grab('info.picocli:picocli-groovy:4.7.5-SNAPSHOT ')
124124import picocli.CommandLine
125125import static picocli.CommandLine.*
126126
@@ -152,7 +152,7 @@ class Checksum implements Callable<Integer> {
152152[[CheckSum-App-Groovy-Script]]
153153[source,groovy,role="secondary"]
154154----
155- @Grab('info.picocli:picocli-groovy:4.7.4 ')
155+ @Grab('info.picocli:picocli-groovy:4.7.5-SNAPSHOT ')
156156import static picocli.CommandLine.*
157157import groovy.transform.Field
158158import java.security.MessageDigest
@@ -279,7 +279,7 @@ Below are examples of configuring Gradle or Maven to use picocli as an external
279279[source,groovy,role="primary"]
280280----
281281dependencies {
282- implementation 'info.picocli:picocli:4.7.4 '
282+ implementation 'info.picocli:picocli:4.7.5-SNAPSHOT '
283283}
284284----
285285.Maven
@@ -288,7 +288,7 @@ dependencies {
288288<dependency>
289289 <groupId>info.picocli</groupId>
290290 <artifactId>picocli</artifactId>
291- <version>4.7.4 </version>
291+ <version>4.7.5-SNAPSHOT </version>
292292</dependency>
293293----
294294
@@ -325,8 +325,8 @@ https://immutables.github.io/apt.html[This page] shows the steps to configure Ec
325325[source,groovy,role="primary"]
326326----
327327dependencies {
328- implementation 'info.picocli:picocli:4.7.4 '
329- annotationProcessor 'info.picocli:picocli-codegen:4.7.4 '
328+ implementation 'info.picocli:picocli:4.7.5-SNAPSHOT '
329+ annotationProcessor 'info.picocli:picocli-codegen:4.7.5-SNAPSHOT '
330330}
331331
332332
@@ -348,7 +348,7 @@ compileJava {
348348 <path>
349349 <groupId>info.picocli</groupId>
350350 <artifactId>picocli-codegen</artifactId>
351- <version>4.7.4 </version>
351+ <version>4.7.5-SNAPSHOT </version>
352352 </path>
353353 </annotationProcessorPaths>
354354 <compilerArgs>
@@ -368,7 +368,7 @@ then replace `annotationProcessor` with `kapt`:
368368apply plugin: 'kotlin-kapt' // required
369369dependencies {
370370 // ...
371- kapt 'info.picocli:picocli-codegen:4.7.4 '
371+ kapt 'info.picocli:picocli-codegen:4.7.5-SNAPSHOT '
372372}
373373```
374374
@@ -399,7 +399,7 @@ Now, assuming we created a jar named `checksum.jar` containing our compiled `Che
399399
400400[source,bash]
401401----
402- java -cp "picocli-4.7.4 .jar:checksum.jar" CheckSum --algorithm SHA-1 hello.txt
402+ java -cp "picocli-4.7.5-SNAPSHOT .jar:checksum.jar" CheckSum --algorithm SHA-1 hello.txt
403403----
404404
405405You may want to package your application in such a way that end users can invoke it with a short command like this:
@@ -10381,7 +10381,7 @@ Eventually, we are ready to run our application:
1038110381
1038210382[source,bash]
1038310383----
10384- java -cp "picocli-4.7.4 .jar;myapp.jar" org.myorg.GreetingApp Sarah Lea
10384+ java -cp "picocli-4.7.5-SNAPSHOT .jar;myapp.jar" org.myorg.GreetingApp Sarah Lea
1038510385----
1038610386
1038710387With no command line parameter `--locale` given, the message texts are printed in the default language (here: English):
@@ -10395,7 +10395,7 @@ In order to control the locale chosen for our output, we have to make use of the
1039510395
1039610396[source,bash]
1039710397----
10398- java -cp "picocli-4.7.4 .jar;myapp.jar" org.myorg.GreetingApp --locale=es Sarah Lea
10398+ java -cp "picocli-4.7.5-SNAPSHOT .jar;myapp.jar" org.myorg.GreetingApp --locale=es Sarah Lea
1039910399----
1040010400
1040110401Now our message texts are printed in Spanish:
@@ -11714,21 +11714,21 @@ Since picocli dependencies are not available in the Spring Initializr, we have t
1171411714<dependency>
1171511715 <groupId>info.picocli</groupId>
1171611716 <artifactId>picocli-spring-boot-starter</artifactId>
11717- <version>4.7.4 </version>
11717+ <version>4.7.5-SNAPSHOT </version>
1171811718</dependency>
1171911719----
1172011720.Gradle (Groovy)
1172111721[source,groovy,role="secondary"]
1172211722----
1172311723dependencies {
11724- implementation 'info.picocli:picocli-spring-boot-starter:4.7.4 '
11724+ implementation 'info.picocli:picocli-spring-boot-starter:4.7.5-SNAPSHOT '
1172511725}
1172611726----
1172711727.Gradle (Kotlin)
1172811728[source,kotlin,role="secondary"]
1172911729----
1173011730dependencies {
11731- implementation("info.picocli:picocli-spring-boot-starter:4.7.4 ")
11731+ implementation("info.picocli:picocli-spring-boot-starter:4.7.5-SNAPSHOT ")
1173211732}
1173311733----
1173411734
@@ -13078,7 +13078,7 @@ As mentioned in <<Running the Application>>, earlier in this manual, one way to
1307813078
1307913079[source,bash]
1308013080----
13081- java -cp "picocli-4.7.4 .jar;myapp.jar" org.myorg.MyMainClass --option=value arg0 arg1
13081+ java -cp "picocli-4.7.5-SNAPSHOT .jar;myapp.jar" org.myorg.MyMainClass --option=value arg0 arg1
1308213082----
1308313083
1308413084That is quite verbose. You may want to package your application in such a way that end users can invoke it by its command name like this:
@@ -13097,7 +13097,7 @@ On unix-based operating systems, you can ask your users to define an alias. For
1309713097
1309813098[source,bash]
1309913099----
13100- alias mycommand='java -cp "/path/to/picocli-4.7.4 .jar:/path/to/myapp.jar" org.myorg.MainClass'
13100+ alias mycommand='java -cp "/path/to/picocli-4.7.5-SNAPSHOT .jar:/path/to/myapp.jar" org.myorg.MainClass'
1310113101----
1310213102
1310313103Append the above line to your `~/.bashrc` file to make this alias available in every new shell session.
@@ -13146,7 +13146,7 @@ After installing GraalVM and installing the `native-image` generator utility (wi
1314613146you can then create a native image by invoking the `native-image` command:
1314713147
1314813148----
13149- path/to/native-image -cp picocli-4.7.4 .jar --static -jar myapp.jar
13149+ path/to/native-image -cp picocli-4.7.5-SNAPSHOT .jar --static -jar myapp.jar
1315013150----
1315113151
1315213152CAUTION: To create a native image, the compiler toolchain for your platform needs to be installed. See https://www.infoq.com/articles/java-native-cli-graalvm-picocli/[Build Great Native CLI Apps in Java with Graalvm and Picocli] for details.
@@ -13291,7 +13291,7 @@ The script body is executed if the user input was valid and did not request usag
1329113291
1329213292[source,groovy]
1329313293----
13294- @Grab('info.picocli:picocli-groovy:4.7.4 ')
13294+ @Grab('info.picocli:picocli-groovy:4.7.5-SNAPSHOT ')
1329513295@GrabConfig(systemClassLoader=true)
1329613296@Command(name = "myScript",
1329713297 mixinStandardHelpOptions = true, // add --help and --version options
@@ -13332,7 +13332,7 @@ The table below compares these two base classes.
1333213332
1333313333
1333413334WARNING: When upgrading scripts from picocli versions older than 4.0, just changing the version number is not enough!
13335- Scripts should use `@Grab('info.picocli:picocli-groovy:4.7.4 ')`. The old artifact id `@Grab('info.picocli:picocli:4.7.4 ')` will not work,
13335+ Scripts should use `@Grab('info.picocli:picocli-groovy:4.7.5-SNAPSHOT ')`. The old artifact id `@Grab('info.picocli:picocli:4.7.5-SNAPSHOT ')` will not work,
1333613336because the `@picocli.groovy.PicocliScript` annotation class and supporting classes have been moved into a separate module, `picocli-groovy`.
1333713337
1333813338==== Closures in Annotations
@@ -13390,7 +13390,7 @@ NOTE: When using a Groovy version older than 2.4.7, use this workaround for the
1339013390
1339113391[source,groovy]
1339213392----
13393- @Grab('info.picocli:picocli-groovy:4.7.4 ')
13393+ @Grab('info.picocli:picocli-groovy:4.7.5-SNAPSHOT ')
1339413394@GrabExclude('org.codehaus.groovy:groovy-all') // work around GROOVY-7613
1339513395...
1339613396----
@@ -13533,13 +13533,13 @@ You can add picocli as an external dependency to your project, or you can includ
1353313533.Gradle
1353413534[source,groovy,role="primary"]
1353513535----
13536- implementation 'info.picocli:picocli:4.7.4 '
13536+ implementation 'info.picocli:picocli:4.7.5-SNAPSHOT '
1353713537----
1353813538
1353913539.Gradle (Kotlin)
1354013540[source,kotlin,role="secondary"]
1354113541----
13542- implementation("info.picocli:picocli:4.7.4 ")
13542+ implementation("info.picocli:picocli:4.7.5-SNAPSHOT ")
1354313543----
1354413544
1354513545.Maven
@@ -13548,50 +13548,50 @@ implementation("info.picocli:picocli:4.7.4")
1354813548<dependency>
1354913549 <groupId>info.picocli</groupId>
1355013550 <artifactId>picocli</artifactId>
13551- <version>4.7.4 </version>
13551+ <version>4.7.5-SNAPSHOT </version>
1355213552</dependency>
1355313553----
1355413554
1355513555.Scala SBT
1355613556[source,role="secondary"]
1355713557----
13558- libraryDependencies += "info.picocli" % "picocli" % "4.7.4 "
13558+ libraryDependencies += "info.picocli" % "picocli" % "4.7.5-SNAPSHOT "
1355913559----
1356013560
1356113561.Ivy
1356213562[source,role="secondary"]
1356313563----
13564- <dependency org="info.picocli" name="picocli" rev="4.7.4 " />
13564+ <dependency org="info.picocli" name="picocli" rev="4.7.5-SNAPSHOT " />
1356513565----
1356613566
1356713567.Grape
1356813568[source,role="secondary"]
1356913569----
1357013570@Grapes(
13571- @Grab(group='info.picocli', module='picocli', version='4.7.4 ')
13571+ @Grab(group='info.picocli', module='picocli', version='4.7.5-SNAPSHOT ')
1357213572)
1357313573----
1357413574
1357513575.Leiningen
1357613576[source,role="secondary"]
1357713577----
13578- [info.picocli/picocli "4.7.4 "]
13578+ [info.picocli/picocli "4.7.5-SNAPSHOT "]
1357913579----
1358013580
1358113581.Buildr
1358213582[source,role="secondary"]
1358313583----
13584- 'info.picocli:picocli:jar:4.7.4 '
13584+ 'info.picocli:picocli:jar:4.7.5-SNAPSHOT '
1358513585----
1358613586
1358713587.JBang
1358813588[source,role="secondary"]
1358913589----
13590- //DEPS info.picocli:picocli:4.7.4
13590+ //DEPS info.picocli:picocli:4.7.5-SNAPSHOT
1359113591----
1359213592
1359313593=== Source
1359413594
1359513595By using picocli in source form, you can avoid having an external dependency on picocli.
13596- Picocli has only one source file: link:https://github.com/remkop/picocli/blob/v4.7.4 /src/main/java/picocli/CommandLine.java[CommandLine.java].
13596+ Picocli has only one source file: link:https://github.com/remkop/picocli/blob/v4.7.5-SNAPSHOT /src/main/java/picocli/CommandLine.java[CommandLine.java].
1359713597This facilitates including picocli in your project: simply copy and paste the code of this file into a file called `CommandLine.java`, add it to your project, and enjoy!
0 commit comments