You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Remko Popma (Jira)" <ji...@apache.org> on 2020/04/30 21:46:00 UTC

[jira] [Commented] (GROOVY-9432) ClassNotFoundException when attempting to use Picocli via Grapes

    [ 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)