web-dev-qa-db-fra.com

Grails/Groovy/GGTS: Versions de modules en conflit sur run-app

Après la mise à niveau d'une application Grails de 2.2.0 à 2.2.1, l'erreur suivante persiste lorsque je tente de déboguer une application Grails depuis GGTS via Debug en tant que ... -> Commande Grails (run-app):

Error starting Grails: nulljava.lang.ExceptionInInitializerError
at org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.Java:62)
at groovy.lang.GroovyObjectSupport.<init>(GroovyObjectSupport.Java:32)
at groovy.lang.Closure.<init>(Closure.Java:221)
at groovy.lang.Closure.<init>(Closure.Java:238)
at groovy.lang.Closure$1.<init>(Closure.Java:205)
at groovy.lang.Closure.<clinit>(Closure.Java:205)
at org.codehaus.groovy.grails.cli.GrailsScriptRunner.<clinit>(GrailsScriptRunner.Java:84)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:601)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.Java:1243)
at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.Java:234)
at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.Java:262)
Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.0.5 and you are trying to load version 2.0.7
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerExtensionModuleFromProperties(MetaClassRegistryImpl.Java:186)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerExtensionModuleFromMetaInf(MetaClassRegistryImpl.Java:174)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerClasspathModules(MetaClassRegistryImpl.Java:156)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.Java:111)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.Java:73)
at groovy.lang.GroovySystem.<clinit>(GroovySystem.Java:33)
... 14 more

J'utilise GGTS 3.1.0.RELEASE avec Groovy Compiler 2.0 Feature 2.7.1.xx-20120921-2000-e42RELEASE et Groovy/Grails Tool Suite 3.1.0.201210061306-RELEASE-e42. Le projet a configuré Groovy Compiler level 2.0. Les préférences Eclipse disent "Vous utilisez actuellement Groovy Compiler version 2.0.4.xx-20120921-2000-e42RELEASE".

Des allusions?

20
digitalbreed

Je n'ai aucune explication pourquoi cela n'a pas fonctionné, mais j'ai trouvé une solution de contournement.

J'avais une autre cible d'exécution configurée pour la même application, mais avec un paramètre -Dgrails.env=..., que je pouvais lancer sans problèmes. J'ai simplement copié cette configuration et supprimé le paramètre. De cette façon, j'ai fondamentalement recréé la configuration de lancement simple qui échouait auparavant.

Le problème est parti.

0
digitalbreed

j'ai eu ce problème sur Grails 2.2.0 sur la machine Ubuntu, je l'ai corrigé avec les étapes ci-dessous:

  1. ouvrez Eclipse, allez à "Exécuter en tant que" le "Exécuter les configurations"
  2. choisissez l'onglet "Environnement", puis choisissez "remplacer l'environnement natif par l'environnement spécifié"

qui a résolu le problème pour moi .. espérons cette aide

29
SShehab

J'ai eu le même problème, je ramassais groovy-tout 2.0.7 de GGTS et 2.0.8 de mon projet Grails. Pour résoudre le problème, j'ai supprimé la bibliothèque "Groovy Dependencies" du projet Eclipse.

Faites un clic droit sur le projet -> Propriétés -> Chemin de construction Java -> Bibliothèques (onglet) -> Dépendances en Groovy -> Supprimer

27
lance-java

Supprimez manuellement la configuration d'exécution de l'application d'exécution afin qu'elle soit recréée. Cela a été rapporté comme un bug le 1er août 2013. Rapport de bug: https://issuetracker.springsource.com/browse/STS-3501

10
Nathan Ward

J'ai supprimé .metadata dans l'espace de travail GGTS et le projet de réimportation. Cela fonctionne, je peux exécuter à nouveau l'application.

5
Wisnu Manupraba

J'ai eu le même problème et je l'ai résolu par:

  1. Pour votre projet: Ouvrir Exécuter en tant que -> Exécuter les configurations
  2. Aller à l'onglet Actualiser
  3. Vérifiez la Actualisez les ressources à la fin
  4. Appuyez sur Run

Cela a fait le tour pour moi.

2
stenix

Je l'ai résolu en supprimant l'option permettant de charger manuellement le chemin d'accès aux classes dans Exécuter la configuration. Il utilisait la mauvaise version de Grails (2.5.0 au lieu de 2.5.1).

Fondamentalement, le mauvais chemin de classe a été utilisé.

Peut-être que cela amène quelqu'un sur le bon chemin :)

1
f1v3

J'ai eu la même exception: lorsque j'essayais d'exécuter des tests JUnit sur mon projet de démarrage Spring dans Eclipse uniquement, mvn les exécutait correctement. Je n'utilise pas Gradle ou Groovy. En effet, en vérifiant le chemin de classe du test lors du débogage, a montré deux versions de groovy.jar. La version de travail de groovy.jar a été choisie à partir d'autres projets de l'espace de travail Eclipse. J'ai pu résoudre ce problème en supprimant Résoudre les dépendances des projets Workspace dans propriétés du projet -> Maven Resolve dependencies from Workspace projects

1
Anton Krosnev

J'ai eu le même problème, je suis allé à Project properties -> Groovy Compiler ->configure workspace settings et j'ai cliqué sur le bouton "Basculer vers" qui correspondait à l'une des deux versions du message d'erreur . J'espère que cela vous aidera

0
Aloïs de La Comble

utilisez mvn dependency: tree pour vérifier vos dépendances, des conflits de version peuvent exister 

0
Sishi Ye

J'ai le même problème, mais lorsque vous modifiez le nom du projet Grails, il fonctionne correctement.

0
kouzouigh

Une autre solution a fonctionné pour moi lorsque Eclipse a cessé d’exécuter mon projet avec l’erreur "groovy-all est chargé dans la version ... et vous essayez de charger la version".

Suppression manuelle d’une ligne groovy-all du fichier .classpath corrigée.

<classpathentry kind="lib" path="Libraries/groovy-all-2.1.2.jar"/>

J'ai trouvé la solution dans cet article de blog .

0
Joshua Goldberg

Pour moi, une compilation depuis la fenêtre de commande grails a fait l'affaire

0
Wim Ederveen

J'ai eu le même problème lors de son exécution via Eclipse et ce qui a fonctionné pour moi est d'apporter les modifications ci-dessous Accédez à Propriétés du projet -> Groovy Compiler -> configurez les paramètres de l'espace de travail. Décochez la case "Activer la vérification de la non-concordance entre les niveaux du compilateur groovy de projet et d'espace de travail"

0
payal

Je sais que c'est une question GGTS, mais Google m'a conduit ici et cela semble être un problème commun, même après plusieurs années, donc je poste cette réponse ici. J'espère que cela pourra aider d'autres utilisateurs de STS qui atterriront également ici.

J'ai eu ce problème avec Spring Tool Suite, en utilisant Spring Boot version 1.3.3.RELEASE et gradle version 2.14. Il existe certaines dépendances internes entre groovy 2.4.6 et groovy-all 2.4.6, mais les bibliothèques Groovy de mon espace de travail Eclipse sont en version 2.4.7. Supprimer les bibliothèques Groovy des propriétés du projet Spring/Gradle fonctionne pour l'exécution de ces projets, mais pour d'autres projets Groovy dans l'espace de travail, vous êtes coincé entre le marteau et l'enclume. Ils seront exécutés si vous cliquez sur oui lorsque "Des erreurs existent dans le projet. Exécutez-vous quand même?" si vous supprimez les bibliothèques Groovy du chemin de construction des propriétés, sinon elles ne comporteront pas d'erreur de projet si vous placez les bibliothèques Groovy dans le chemin de construction des propriétés.

Résolu en ajoutant des dépendances explicites dans build.gradle sur groovy 2.4.7 et groovy-all 2.4.7 pour les projets Gradle dans l'espace de travail.

compile('org.codehaus.groovy:groovy:2.4.7')
compile('org.codehaus.groovy:groovy-all:2.4.7')

et (fermez Eclipse STS) puis supprimez le (s) dossier (s) 2.4.6 du cache .gradle 

<path to>\.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy\2.4.6
<path to>\.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy-all\2.4.6

et (Ouvrir STS), puis cliquez avec le bouton droit de la souris sur le (s) projet (s) de dégradé (s)> dégradé> rafraîchir le projet de dégradé

Maintenant, d'autres projets Groovy de l'espace de travail s'exécutent sans conflit 2.4.6 vs 2.4.7.

0
geneSummons