2016-10-14 7 views
0

Il est possible d'utiliser de raisin pour télécharger une dépendance du centre Maven:Groovy - utiliser de raisin pour télécharger la documentation et les sources

@Grab(group='org.apache.commons', module='commons-lang3', version='3.4')

Spécification d'un type de jar au sein de l'annotation Grab fait la même chose:

@Grab(group='org.apache.commons', module='commons-lang3', version='3.4', type='jar')

et selon la javadoc, la valeur de type peut aussi être javadoc et sources, mais d'essayer ce qui suit dans IntelliJ:

@Grab(group='org.apache.commons', module='commons-lang3', version='3.4', type = 'sources')

résultats dans:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
General error during conversion: Error grabbing Grapes -- [download failed: org.apache.commons#commons-lang3;3.4!commons-lang3.sources] 

java.lang.RuntimeException: Error grabbing Grapes -- [download failed: org.apache.commons#commons-lang3;3.4!commons-lang3.sources] 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) 
    at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:77) 
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) 
    at groovy.grape.GrapeIvy.getDependencies(GrapeIvy.groovy:426) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:169) 
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154) 
    at groovy.grape.GrapeIvy.resolve(GrapeIvy.groovy:573) 
    at groovy.grape.GrapeIvy$resolve$1.callCurrent(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:190) 
    at groovy.grape.GrapeIvy.resolve(GrapeIvy.groovy:540) 
    at groovy.grape.GrapeIvy$resolve$0.callCurrent(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182) 
    at groovy.grape.GrapeIvy.grab(GrapeIvy.groovy:258) 
    at groovy.grape.Grape.grab(Grape.java:167) 
    at groovy.grape.GrabAnnotationTransformation.visit(GrabAnnotationTransformation.java:378) 
    at org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTransformationVisitor.java:321) 
    at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:931) 
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:593) 
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569) 
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546) 
    at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298) 
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268) 
    at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688) 
    at groovy.lang.GroovyShell.run(GroovyShell.java:517) 
    at groovy.lang.GroovyShell.run(GroovyShell.java:507) 
    at groovy.ui.GroovyMain.processOnce(GroovyMain.java:653) 
    at groovy.ui.GroovyMain.run(GroovyMain.java:384) 
    at groovy.ui.GroovyMain.process(GroovyMain.java:370) 
    at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129) 
    at groovy.ui.GroovyMain.main(GroovyMain.java:109) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109) 
    at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 

Eclipse donne une erreur semblable. Alors est-il possible d'utiliser Grape pour télécharger les sources/javadoc lors de l'édition d'un script groovy dans un IDE?

+0

Avez-vous essayé d'utiliser l'attribut classifier au lieu du type? '@Grab (groupe = 'org.apache.commons', module = 'commons-lang3', version = '3.4', classifier = 'sources')' – sensei

+0

Vous pouvez voir un exemple de l'attribut 'classifier' utilisé pour cela, suivez votre lien, à la doc pour le paramètre 'value'. – sensei

+0

'classifier = 'javadoc'' et 'classifier = 'sources'' semble fonctionner, je vois les jars dans' ~/.groovy/raisins/'. Mais Intellij ne semble pas les utiliser - il n'y a pas de documentation ou de code source dans l'EDI. – Malt

Répondre

1

Le doc vous liez mentionne également la possibilité d'utiliser l'attribut classifier qui semble fonctionner mieux (raisin sera en effet saisir les correspondants jar s):

@Grab(group='org.apache.commons', module='commons-lang3', version='3.4', classifier='sources') 

Cependant, il ressemble à Grape support in Idea is incomplete. Pour que Idea utilise les paquets saisis, vous devez placer votre curseur sur l'annotation @Grab, appuyer sur alt-enter et saisir les artefacts manuellement. Vous pouvez ensuite les copier dans les bibliothèques de modules à partir des paramètres de la structure du projet. Cela semble le faire pour moi, bien que je pense aussi qu'il défie tout le point d'utiliser Grape ...