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 2019/06/08 06:06:00 UTC

[jira] [Created] (GROOVY-9165) Grape cannot pull in picocli

Remko Popma created GROOVY-9165:
-----------------------------------

             Summary: Grape cannot pull in picocli
                 Key: GROOVY-9165
                 URL: https://issues.apache.org/jira/browse/GROOVY-9165
             Project: Groovy
          Issue Type: Improvement
          Components: Grape, groovy-runtime
    Affects Versions: 2.5.7, 2.5.6, 2.5.5, 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0
            Reporter: Remko Popma


If I try to run a Groovy script I am unable to pull in a newer version of picocli via {{@Grab}}:

{code:groovy}
@Grab('info.picocli:picocli-groovy:4.0.0-beta-1b')
@GrabExclude('org.codehaus.groovy:groovy-all')
@picocli.groovy.PicocliScript
@picocli.CommandLine.Command
import picocli.CommandLine

println "Groovy version ${GroovySystem.version}"
println "Picocli version $CommandLine.VERSION"
 {code}

Depending on the Groovy version, this prints 
{code}
Groovy version 2.5.0
Picocli version 3.0.2
{code}

or 
{code}
Groovy version 2.5.7
Picocli version 3.9.5
{code}

So the {{@Grab('info.picocli:picocli-groovy:4.0.0-beta-1b')}} is not honoured.

This is because the {{groovy.ui.GroovyMain}} class, which executes Groovy scripts, itself uses picocli to parse the command line parameters. Unfortunately, this means that Groovy script authors cannot control the picocli version used by their scripts.

Is there anything we can do to improve this?




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)