web-dev-qa-db-ja.com

Grails / Groovy / GGTS:run-appで競合するモジュールバージョン

Grailsアプリケーションを2.2.0から2.2.1にアップグレードした後、GGTSからDebug as ...-> Grailsコマンド(run-app)を介してGrailsアプリケーションをデバッグしようとすると、次のエラーが発生します。

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

GGTS 3.1.0.RELEASEとGroovy Compiler 2.0 Feature 2.7.1.xx-20120921-2000-e42RELEASEおよびGroovy/Grails Tool Suite 3.1.0.201210061306-RELEASE-e42を実行しています。プロジェクトはGroovy Compilerレベル2.0を構成しました。 Eclipse設定では、「現在Groovyコンパイラーのバージョン2.0.4.xx-20120921-2000-e42RELEASEを使用しています」と表示されます。

ヒントはありますか?

20
digitalbreed

うまくいかなかった理由はわかりませんが、回避策を見つけました。

同じアプリ用に別の実行ターゲットを構成しましたが、-Dgrails.env=...設定。問題なく起動できました。この構成をコピーしてパラメーターを削除しただけです。このようにして、以前は失敗し続けていた単純な起動構成を基本的に再作成しました。

問題はなくなりました。

0
digitalbreed

ubuntuマシンのGrails 2.2.0でこの問題が発生しました。以下の手順で修正しました。

  1. eclipseを開き、「実行」、「実行構成」に移動します。
  2. 「環境」タブを選択し、「ネイティブ環境を指定された環境で置き換える」を選択します

それは私のために問題を解決しました...この助けを願っています

29
SShehab

同じ問題がありました。GGTSからgroovy-all 2.0.7を、grailsプロジェクトから2.0.8をピックアップしていました。この問題を解決するために、Eclipseプロジェクトから「Groovy Dependencies」ライブラリーを削除しました。

プロジェクトを右クリック->プロパティ-> Javaビルドパス->ライブラリ(タブ)-> Groovy依存関係->削除

28
lance-java

Run-app実行構成を手動で削除して、再作成されるようにします。これは、2013年8月1日にバグとして報告されました。バグレポート: https://issuetracker.springsource.com/browse/STS-3501

10
Nathan Ward

GGTSワークスペースで.metadataを削除し、プロジェクトを再インポートしました。動作しました。アプリをもう一度実行できます。

5
Wisnu Manupraba

私は同じ問題を抱えていて、私はそれを次の方法で解決しました:

  1. プロジェクトの場合:開くRun As->実行構成
  2. 更新タブに移動します
  3. 完了時にリソースを更新するを確認します
  4. 押す実行

それは私にとってはトリックでした。

2
stenix

実行構成でクラスパスを手動でロードするオプションを削除することで解決しました。間違ったGrailsバージョン(2.5.1ではなく2.5.0)を使用していました。

基本的に間違ったクラスパスが使用されました。

多分これは誰かを正しい道に連れて行く:)

1
f1v3

同じ例外があり、EclipseのSpringブートプロジェクトでJUnitテストを実行しようとすると、mvnはそれらを正常に実行しました。GradleまたはGroovyを使用していません。実際、デバッグ時にテストのクラスパスをチェックすると、groovy.jarの2つのバージョンが表示されました。 groovy.jarの作業バージョンは、Eclipseワークスペースの他のプロジェクトから選択されました。projectプロパティからワークスペースプロジェクトからResolve dependencyを削除することで修正できました-> Maven Resolve dependencies from Workspace projects

1
Anton Krosnev

同じ問題が発生したため、Project properties -> Groovy Compiler ->configure workspace settingsにアクセスし、エラーメッセージの2つのバージョンのいずれかに対応する[切り替え]ボタンをクリックしました。これが役に立てば幸い

0

mvn dependency:treeを使用して依存関係を確認してください。バージョンの競合が存在している可能性があります。

0
Sishi Ye

私は同じ問題を抱えていますが、Grailsプロジェクトの名前を変更すると、正しく機能します。

0
kouzouigh

Eclipseが "groovy-all is version in version ...をロードしていて、バージョンをロードしようとしている"エラーでプロジェクトを実行できなくなったときに、別の解決策がうまくいきました。

.classpathからgroovy-all行を手動で削除すると修正されました。

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

私は解決策を見つけました このブログ投稿で

0
Joshua Goldberg

私にとっては、grailsコマンドウィンドウからのコンパイルでうまくいきました

0
Wim Ederveen

私はそれをEclipseで実行するときに同じ問題を抱えていましたが、私のために働いたのは、以下の変更を加えることです。チェックボックス「プロジェクトとワークスペースのGroovyコンパイラレベル間の不一致のチェックを有効にする」のチェックを外します

0
payal

私はこれがGGTSの質問であることを知っていますが、Googleが私をここに導いてくれました。これは数年経っても一般的な問題のようですので、この回答をここに投稿します。うまくいけば、これもここに上陸する他のSTSユーザーを助けることができます。

Spring Tool Suiteでこの問題が発生しました。SpringBootバージョン1.3.3.RELEASEとGradleバージョン2.14を使用しています。 groovy 2.4.6およびgroovy-all 2.4.6にはいくつかの内部依存関係がありますが、EclipseワークスペースのGroovy Librariesはバージョン2.4.7です。 Spring/GradleプロジェクトのプロパティからGroovyライブラリを削除すると、それらのプロジェクトを実行できますが、ワークスペース内の他のGroovyプロジェクトでは、岩と固い場所の間に立ち往生しています。 「プロジェクトにエラーが存在します。実行しますか?」のときに「はい」をクリックすると実行されます。プロパティビルドパスからGroovyライブラリを削除した場合、またはプロパティビルドパスにGroovyライブラリを配置した場合、プロジェクトエラーは発生しません。

ワークスペース内のGradleプロジェクトのgroovy 2.4.7およびgroovy-all 2.4.7のbuild.gradleに明示的な依存関係を追加することで解決しました

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

そして(Eclipse STSを閉じます)2.4.6フォルダーを.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

(STSを開く)次に、gradleプロジェクトを右クリックし、gradleプロジェクトを更新します。gradleプロジェクトを更新します

これで、ワークスペース内の他のGroovyプロジェクトは、2.4.6と2.4.7の競合なしで実行されます。

0
geneSummons