2

gwt プロジェクトをコンパイルしようとするとエラーが発生します。これは通常、jre 1.7 (51.0) でコンパイルされたクラスが原因です。クラスが 1.6 バージョンでコンパイルされていることを確認しました。これがクラスパスに含まれる他のクラスであることはほぼ間違いありませんが、maven ビルドをデバッグするときに gwt コンパイラを中断させることはできません。Eclipse を使用して Maven ビルドのデバッグを中断し、UnsupportClassVersionError と UnableToCompleteException のブレークポイントを追加しようとしていますが、これが発生しても jvm は停止しません。GWT コンパイラが別のプロセスで実行されている可能性があり、これらの例外を簡単にキャッチできないと推測しています。任意のポインタをいただければ幸いです。

これは、maven を使用してコマンド ラインからコンパイルしようとしたときのエラーです。

[INFO] --- gwt-maven-plugin:2.5.1:compile (default) @ smartbar ---
[INFO] Loading inherited module 'com.smartbar.SmartBar'
[INFO]    Loading inherited module 'com.smartbar.SmartBarCommon'
[INFO]       Loading inherited module 'com.google.gwt.inject.Inject'
[INFO]          [ERROR] Unexpected error while processing XML
[INFO] java.lang.UnsupportedClassVersionError: com/google/gwt/inject/rebind/GinjectorGenerator : Unsupported major.minor version 51.0
[INFO]  at java.lang.ClassLoader.defineClass1(Native Method)
[INFO]  at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
[INFO]  at java.lang.ClassLoader.defineClass(ClassLoader.java:615)


chinshaw$ java -version
java version "1.6.0_51"
Java(TM) SE Runtime Environment (build 1.6.0_51-b11-457-11M4509)
Java HotSpot(TM) 64-Bit Server VM (build 20.51-b01-457, mixed mode)


chinshaw$ find . -name '*.class' | xargs file | head -10
    ./WEB-INF/classes/com/testing/client/activity/AbstractActivity.class:                                compiled Java class data, version 50.0 (Java 1.6)
    ./WEB-INF/classes/com/testing/client/activity/EstablishmentInventoryActivity.class:                  compiled Java class data, version 50.0 (Java 1.6)
    ./WEB-INF/classes/com/testing/client/activity/EstablishmentNavigationActivity.class:                 compiled Java class data, version 50.0 (Java 1.6)
    ./WEB-INF/classes/com/testing/client/ClientUserSession.class:                                        compiled Java class data, version 50.0 (Java 1.6)
    ./WEB-INF/classes/com/testing/client/events/EntityEditEvent$Handler.class:                           compiled Java class data, version 50.0 (Java 1.6)
    ./WEB-INF/classes/com/testing/client/events/EntityEditEvent.class:                                   compiled Java class data, version 50.0 (Java 1.6)
    ./WEB-INF/classes/com/testing/client/events/InventoryItemSelectionEvent$Handler.class:               compiled Java class data, version 50.0 (Java 1.6)
    ./WEB-INF/classes/com/testing/client/events/InventoryItemSelectionEvent.class:                       compiled Java class data, version 50.0 (Java 1.6)
    ./WEB-INF/classes/com/testing/client

一時的な解決策

これは maven リポジトリの問題かもしれませんが、2.1.0 の gin パッケージは 1.7.0 でビルドされているようです。依存関係を 2.0.0 にダウングレードしたところ、問題なく動作するようになりました。

desktop-mini:2.1.0 chinshaw$ pwd
/Users/chinshaw/.m2/repository/com/google/gwt/inject/gin/2.1.0
desktop-mini:inject chinshaw$ find . -name '*.class'  -exec file {} \; | head -10
./client/AbstractGinModule.class: compiled Java class data, version 51.0
./client/assistedinject/BindingCollector.class: compiled Java class data, version 51.0
./client/assistedinject/FactoryModule.class: compiled Java class data, version 51.0
./client/assistedinject/GinFactoryModuleBuilder.class: compiled Java class data, version 51.0
./client/AsyncProvider.class: compiled Java class data, version 51.0
./client/binder/GinAnnotatedBindingBuilder.class: compiled Java class data, version 51.0
./client/binder/GinAnnotatedConstantBindingBuilder.class: compiled Java class data, version 51.0
./client/binder/GinAnnotatedElementBuilder.class: compiled Java class data, version 51.0
./client/binder/GinBinder.class: compiled Java class data, version 51.0
./client/binder/GinConstantBindingBuilder.class: compiled Java class data, version 51.0

これがバグIDです。最初にそこを見ていればよかったのに。ただし、最初は別の瓶に問題があると想定しました。 http://code.google.com/p/google-gin/issues/detail?id=190

4

1 に答える 1