Groovy-Grab-le téléchargement a échoué

J'ai une nouvelle installation de Groovy 2.1.4 et je voudrais créer un script qui utilise HTTP builder.

J'ai ajouté la ligne suivante en haut du script:

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.6')

Lorsque j'exécute le script dans GroovyConsole, j'obtiens l'erreur suivante:

1 compilation error:

Exception thrown
VI 01, 2013 12:15:39 ODP. org.codehaus.groovy.runtime.StackTraceUtils sanitize

WARNING: Sanitizing stacktrace:

java.lang.RuntimeException: Error grabbing Grapes -- [download failed: commons-logging#commons-logging;1.1.1!commons-logging.jar]

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

    ... (aso) ...

java.lang.RuntimeException: Error grabbing Grapes -- [download failed: commons-logging#commons-logging;1.1.1!commons-logging.jar]

Lorsque j'exécute la commande suivante sur la ligne de commande Windows:

grape -V resolve org.codehaus.groovy.modules.http-builder http-builder 0.6

Je reçois la même erreur, c'est-à-dire:

:: problems summary ::
:::: WARNINGS
        [NOT FOUND  ] commons-logging#commons-logging;1.1.1!commons-logging.jar (0ms)

    ==== localm2: tried

      file:C:Documents and SettingsAdministrator/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar


:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
Error in resolve:
    Error grabbing Grapes -- [download failed: commons-logging#commons-logging;1.1.1!commons-logging.jar]

Lorsque j'essaie de résoudre la journalisation de commons directement, via ce qui suit commande:

grape -V resolve commons-logging commons-logging 1.1.1

Je reçois la même erreur, c'est à dire not found.

Quand j'essaie plutôt de télécharger la dernière version, c'est-à-dire 1.1.3, via la commande appropriée, cela fonctionne. Mais même après cela, la résolution du client http échoue toujours.

Où est le problème?

36
demandé sur Will 2013-06-01 14:39:41

4 réponses

Il semble que vos paramètres de raisin sont définis uniquement pour regarder dans votre répertoire local .m2 pour la bibliothèque. Vérifiez votre fichier de configuration grapeConfig.xml. (Si vous n'en avez pas, vous pouvez le créer-il devrait aller dans le même répertoire où votre répertoire de cache groovysh.history et grapes sont créés par Groovy.) Vous pouvez copier l'exemple de fichier affiché sur la page de référence Groovy Grape .

Si cela ne vous aide pas, j'essaierais de supprimer votre répertoire de cache grapes et de l'essayer à nouveau.

24
répondu jesseplymale 2016-10-18 02:49:30

Essayez de supprimer le répertoire ~/.m2 et aussi ~/.groovy/grapes directory.
Il a travaillé pour moi.

31
répondu Pavel Černocký 2014-07-25 15:21:31

Mon problème était, groovy (v2.4.8) regardait dans le fist du dépôt Maven (~/.m2/repository/) et trouver le fichier pom mais ne pas trouver l'artefact/JAR associé. Au lieu de simplement passer au prochain résolveur, qui aurait réussi, il abandonne simplement. La solution serait de supprimer le fichier pom, le cache de répertoire spécifique, ou simplement renommer temporairement le référentiel et exécuter groovy à nouveau comme d'autres suggéré. Ou vous pouvez essayer de l'ajouter manuellement au référentiel. Mais ce ne sont que temporaire et vous rencontrerez probablement à nouveau le problème si vous effacez votre cache groovy ou avec une autre dépendance.

Pour résoudre ce problème, vous pouvez activer la journalisation détaillée et essayer d'installer manuellement la dépendance. Donc, si votre erreur est quelque chose comme:

java.lang.RuntimeException: Error grabbing Grapes -- [download failed: commons-logging#commons-logging;1.1.1!commons-logging.jar, download failed: commons-codec#commons-codec;1.6!commons-codec.jar, download failed: commons-lang#commons-lang;2.4!commons-lang.jar]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

Ce qui signifie que votre dépendance est commons-logging-1.1.1.pot. Vous pouvez exécuter:

grape -V install commons-logging commons-logging 1.1.1

Ce qui a fini par résoudre le problème pour moi était de remplacer la configuration par défaut et de définir usepoms= "false" dans le localm2 résolveur. Cela fonctionne dans mon cas parce que j'ai le pom mais pas le pot, donc puisque Ivy ne considère pas le POM maintenant et que le pot n'était jamais là pour commencer, il va sur le prochain résolveur qui le trouve. Donc en résumé:

  • Créez ce fichier:~/.groovy / grapeConfig.xml
  • , Avec ces contenus:

<ivysettings>
  <settings defaultResolver="downloadGrapes"/>
  <resolvers>
	<chain name="downloadGrapes" returnFirst="true">
	  <filesystem name="cachedGrapes">
		<ivy pattern="${user.home}/.groovy/grapes/[organisation]/[module]/ivy-[revision].xml"/>
		<artifact pattern="${user.home}/.groovy/grapes/[organisation]/[module]/[type]s/[artifact]-[revision](-[classifier]).[ext]"/>
	  </filesystem>
	  <ibiblio name="localm2" root="file:${user.home}/.m2test/repository/" checkmodified="true" changingPattern=".*" changingMatcher="regexp" m2compatible="true" usepoms="false"/>
	  <ibiblio name="jcenter" root="https://jcenter.bintray.com/" m2compatible="true"/>
	  <ibiblio name="ibiblio" m2compatible="true"/>
	</chain>
  </resolvers>
</ivysettings>

J'ai été tenté de ne pas utiliser le cache maven 2 du tout, mais si j'ai supprimé la ligne, j'ai eu des erreurs de ne pas pouvoir trouver "localm2". Bien que la mise à jour pour pointer vers le répertoire fictif a fonctionné.

8
répondu Mike 2017-01-25 04:49:02

La suppression de .m2 et grapes n'a pas résolu le problème pour moi car quand ils ont été repeuplés, le pot n'était pas en cours de téléchargement. Dans mon cas, il me manquait xml-apis-1.3.04.jar

J'ai finalement résolu le problème en téléchargeant manuellement le fichier jar et la copier dans ~/.m2/repository/xml-apis/xml-apis/<version>

Espérons que cela est utile si la simple suppression des répertoires ne fonctionne pas.

1
répondu Trebla 2016-07-07 15:27:23