Ok, these explanations make sense to me. Annotating the imports with their 
corresponding @Grab statement is indeed an elegant solution. We will update or 
internal scripts to follow this.

Thanks,

Loïc

De : Guillaume Laforge [mailto:[email protected]]
Envoyé : mercredi 23 mars 2016 10:51
À : [email protected]
Objet : Re: groovy issue with @Grab

And it'd be more idiomatic to write the example below as:

@Grab('org.apache.commons:commons-lang3:3.4')
import static org.apache.commons.lang3.text.WordUtils.*

println capitalize("this is another test")

(I've also upgraded the version of commons-lang)

Guillaume


On Wed, Mar 23, 2016 at 10:33 AM, Jochen Theodorou 
<[email protected]<mailto:[email protected]>> wrote:


On 23.03.2016 10:08, DECLOEDT Loic EVADERIS wrote:
Hi,

I am taking the opportunity to inform you of an issue we have seen since
a long time.

When a @Grab statement is in a script, the next statement MUST be a
variable statement. For example, a code like this:

@Grapes([

   @Grab('org.apache:commons-lang:2.6')

])

// this var declaration is required to avoid startup error

//def i = 0

an annotation has to annotate something. Java allows annotations on variable 
declarations, classes, methods, packages and imports (at least I think it was 
both), as well as parameters. Since we follow the Java rules for annotation 
placement, the same applies to us.... we have been talking about extending 
this, but the current parser gets in the way of doing that, since such a change 
is highly ambiguous in many cases. After all, you are replacing a clear 
distinction of for example statements and their introducing keywords with 
something all have in common.

[...]
Is it a known issue ?

yes, we hope once the long work on the new grammar is done, this issue can be 
tackled.

bye Jochen



--
Guillaume Laforge
Apache Groovy committer & PMC Vice-President
Product Ninja & Advocate at Restlet<http://restlet.com>

Blog: http://glaforge.appspot.com/
Social: @glaforge<http://twitter.com/glaforge> / 
Google+<https://plus.google.com/u/0/114130972232398734985/posts>

Reply via email to