[ https://issues.apache.org/jira/browse/GROOVY-9432?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17097004#comment-17097004 ]
Remko Popma commented on GROOVY-9432: ------------------------------------- I am adding the following to the (bottom of the) {{CliBuilder}} section of the [Domain Specific Languages page|http://groovy-lang.org/dsls.html#_clibuilder]. {quote} h4. Controlling the Picocli version If necessary, you can use the {{@Grab}} annotation to control the version of picocli to use in {{CliBuilder}}. {code} @GrabConfig(systemClassLoader=true) @Grab('info.picocli:picocli:4.2.0') import groovy.cli.picocli.CliBuilder def cli = new CliBuilder() {code} {quote} [~marcs]: do you think this is sufficient? [~paulk]: I committed this to the master and 3_0_x branches. Should I also add it to 2_5_x ? > ClassNotFoundException when attempting to use Picocli via Grapes > ---------------------------------------------------------------- > > Key: GROOVY-9432 > URL: https://issues.apache.org/jira/browse/GROOVY-9432 > Project: Groovy > Issue Type: Bug > Components: Grape > Affects Versions: 3.0.0, 3.0.1 > Environment: Reproduced under both macOS (Groovy 3.0.1 installed > manually and via MacPorts) and Debian (Groovy installed via SDKMAN). > Reporter: Marc Simpson > Assignee: Remko Popma > Priority: Major > Attachments: image-2020-03-03-14-30-10-210.png > > > (Issue originally raised as: https://github.com/remkop/picocli/issues/970) > Consider the following minimal script: > {noformat} > @Grab('info.picocli:picocli:4.2.0') > import groovy.cli.picocli.CliBuilder > def cli = new CliBuilder() > {noformat} > Under Groovy 2.5.9, this runs without error; with 3.0.1, however, I see: > {noformat} > $ groovy cli.groovy > Caught: java.lang.NoClassDefFoundError: picocli/CommandLine$ParameterException > java.lang.NoClassDefFoundError: picocli/CommandLine$ParameterException > at cli.run(cli.groovy:4) > at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > Caused by: java.lang.ClassNotFoundException: > picocli.CommandLine$ParameterException > ... 4 more > {noformat} > The jar is definitely downloaded to {{~/.groovy/grapes}} and both versions of > Groovy output > {noformat} > Resolving dependency: info.picocli#picocli;4.2.0 {default=[default]} > Preparing to download artifact info.picocli#picocli;4.2.0!picocli.jar > {noformat} > when {{-Dgroovy.grape.report.downloads=true}} is supplied. -- This message was sent by Atlassian Jira (v8.3.4#803005)