Lors de l'exécution d'un script qui utilise le système grape à @Grab une dépendance dans le repo ibiblio, il échoue jusqu'à ce que j'appelle manuellement grape resolve
à partir de la ligne de commande. Après cela, c'est dans le cache local et le script fonctionne bien.Groovy 1.8 @Grab échoue à moins que j'appelle manuellement résolution de raisin
Y at-il une autre annotation que je dois utiliser pour faire fonctionner la première fois depuis le script? Il se sent kludgy de dire aux utilisateurs à la première "résolution de raisin" et puis fonctionne @Grab.
C'est le script, saisissant le pot de Jedis pour Redis:
#!/usr/bin/env groovy
@Grab('redis.clients:jedis:2.0.0')
import redis.clients.jedis.*
Jedis redis = new Jedis("localhost")
qui échoue à cette exception si j'ai propre ~/.groovy/cache de raisins:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
General error during conversion: Error grabbing Grapes -- [unresolved dependency: redis.clients#jedis;2.0.0: ibiblio: unable to get resource for redis/clients#jedis;2.0.0: res=/redis/clients/jedis/2.0.0/jedis-2.0.0.pom: java.net.MalformedURLException: no protocol: /redis/clients/jedis/2.0.0/jedis-2.0.0.pom]
Il ne exécute une fois j'exécuter grape resolve
manuellement à partir de la ligne de commande:
grape -V resolve redis.clients jedis 2.0.0
(partie de th sortie e montre qu'il est le téléchargement à partir ibiblio):
...
ibiblio: found md file for redis.clients#jedis;2.0.0
=> http://repo1.maven.org/maven2/redis/clients/jedis/2.0.0/jedis-2.0.0.pom (2.0.0)
downloading http://repo1.maven.org/maven2/redis/clients/jedis/2.0.0/jedis-2.0.0.pom ...
ibiblio: downloading http://repo1.maven.org/maven2/redis/clients/jedis/2.0.0/jedis-2.0.0.pom
ibiblio: downloading http://repo1.maven.org/maven2/redis/clients/jedis/2.0.0/jedis-2.0.0.pom.sha1
sha1 OK for http://repo1.maven.org/maven2/redis/clients/jedis/2.0.0/jedis-2.0.0.pom
[SUCCESSFUL ] redis.clients#jedis;2.0.0!jedis.pom(pom.original) (1184ms)
...
Après il est dans le cache local, le script fonctionne très bien avec @Grab.
Je n'ai pas ajouté manuellement un ~/.groovy/fichier grapeConfig.xml de sorte qu'il utilise celui par défaut qui est livré avec groovy. J'utilise Groovy 1.8:
groovy -v
Groovy Version: 1.8.0 JVM: 1.6.0_24
J'ai essayé d'ajouter manuellement au-dessus de la benne:
@GrabResolver(name='ibiblio', m2Compatible='true', root='http://repo1.maven.org/maven2/')
mais cela n'a pas aidé. Est-ce que je manque quelque chose?
J'ai eu un rapport de Paul King sur la liste de diffusion groovy que le script a bien fonctionné pour lui hors de la boîte, lui faisant croire qu'il est environnemental. Je l'ai eu échec pour moi sur 2 machines différentes si, et je suis curieux de savoir si quelqu'un d'autre a eu des situations similaires (ou si le script fonctionne ci-dessus/échoue de la boîte pour les autres). –
Ne voyant pas ce problème dans les nouveaux 2.x Groovy '$ groovy -v Version Groovy: 2.4.7 JVM: 1.8.0_20 vendeur: Oracle Corporation OS: Mac OS X' – MarkHu