[ 
https://issues.apache.org/jira/browse/GROOVY-9165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17051710#comment-17051710
 ] 

Paul King edited comment on GROOVY-9165 at 3/5/20, 12:46 AM:
-------------------------------------------------------------

This is  a breaking change if you were expecting the picocli dependency to be 
in the Groovy distribution. It is listed as a runtime dependency if you use 
{{groovy-cli-picocli}} but just not by default in the distribution. You can of 
course add a {{@Grab}}  to scripts or place the jar in your distro or 
{{~/.groovy}} folder. I'll add a note in the release notes.


was (Author: paulk):
This is  a breaking change if you were expecting the picocli dependency to be 
in the Groovy distribution. It is listed as a runtime dependency if you use 
{{groovy-cli-picocli}} but just not by default in the distribution. You can of 
course add a {{@Grab}}  to scripts or place the jar in your distro or 
{{~/.groovy}} folder.

> 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.0, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.5.5, 2.5.6, 2.5.7
>            Reporter: Remko Popma
>            Assignee: Paul King
>            Priority: Major
>              Labels: breaking
>             Fix For: 3.0.0-beta-2
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> 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
(v8.3.4#803005)

Reply via email to