1

gwt-maven-plugin start と "Compiling module" ステートメントの間で GWT コンパイルが失敗する原因を知っている人はいますか?

GWT は通常どおり情報を使用して実行されるため、ログに表示されるのはプラグインの開始と、その直後の SIGSEGV だけです。デバッグをローカルで実行して問題が表示されない場合、GWT プラグインが次のいずれかの手順を実行しているときに違反がスローされることがわかります。

  • 継承されたモジュールをロードします
  • レビュー「公開リソースが...で見つかりました」(クラスパスで見つかった.pomファイルに関する2つの警告が表示されます)
  • 翻訳可能なソースが見つかりました...
  • 永続ユニット キャッシュ ディレクトリ セット
  • 以前にキャッシュされたコンパイル ユニットを探しています。

私はクリーンなディレクトリから始めているので、私と私のキャッシュはターゲットの下にあるので、最後の 2 つにはないと思います。エラーは zip lib エントリに関連しているため、クラスパスと解決に問題がある可能性が高いと思われます。

環境

jdk 1.7.0 u55 + gwt 2.5.1 + gwt-maven-plugin 2.5.1-rc1

アイデアがあれば教えてください。ログ レベルを上げ、メモリを変更し、再現可能なケースを期待しています。ありがとう

オプション

  • GWT メモリを増やし、ワーカー スレッドを制限する (完了: 1 スレッド、4g ヒープ、変更なし)
  • プラグインを 2.5.1 または 2.6.1 にアップグレードする
  • jdkをu67にアップグレード
  • gwt を 2.6.1 にアップグレード

を除外する

[情報] --- gwt-maven-plugin:2.5.1-rc1:compile (デフォルト) @ mymodule ---
#
# Java ランタイム環境によって致命的なエラーが検出されました:
#
# pc=0x00000036a3089aab での SIGSEGV (0xb)、pid=14610、tid=140310347593472
#
# JRE バージョン: Java(TM) SE ランタイム環境 (7.0_55-b13) (ビルド 1.7.0_55-b13)
# Java VM: Java HotSpot(TM) 64 ビット サーバー VM (24.55-b03 混合モード linux-amd64 圧縮 oops)
# 問題のあるフレーム:
# C [libc.so.6+0x89aab] memcpy+0x15b
...
...
スタック: [0x00007f9c8c5d3000,0x00007f9c8c6d4000]、sp=0x00007f9c8c6d0c68、空き容量=1015k
ネイティブ フレーム: (J=コンパイル済み Java コード、j=解釈済み、Vv=VM コード、C=ネイティブ コード)
C [libc.so.6+0x89aab] memcpy+0x15b
C [libzip.so+0x50b0] ZIP_GetEntry+0xd0
C [libzip.so+0x3eed] Java_java_util_zip_ZipFile_getEntry+0xad
J java.util.zip.ZipFile.getEntry(J[BZ)J

Java フレーム: (J=コンパイル済み Java コード、j=解釈済み、Vv=VM コード)
J java.util.zip.ZipFile.getEntry(J[BZ)J
J java.util.zip.ZipFile.getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
J java.util.jar.JarFile.getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
j sun.net.www.protocol.jar.URLJarFile.getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;+2
j sun.net.www.protocol.jar.JarURLConnection.connect()V+62
j sun.net.www.protocol.jar.JarURLConnection.getInputStream()Ljava/io/InputStream;+1
j java.net.URLClassLoader.getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;+18
J org.codehaus.mojo.gwt.AbstractGwtModuleMojo.readModule(Ljava/lang/String;)Lorg/codehaus/mojo/gwt/GwtModule;
j org.codehaus.mojo.gwt.GwtModule.getLocalInherits()Ljava/util/Set;+74
j org.codehaus.mojo.gwt.GwtModule.addInheritedModules(Ljava/util/Set;Ljava/util/Set;)V+42
j org.codehaus.mojo.gwt.GwtModule.getInherits()Ljava/util/Set;+32
j org.codehaus.mojo.gwt.GwtModule.getEntryPoints()Ljava/util/List;+20
j org.codehaus.mojo.gwt.shell.CompileMojo.compilationRequired(Ljava/lang/String;Ljava/io/File;)Z+35
j org.codehaus.mojo.gwt.shell.CompileMojo.compile([Ljava/lang/String;)V+432
j org.codehaus.mojo.gwt.shell.CompileMojo.doExecute()V+57
j org.codehaus.mojo.gwt.shell.AbstractGwtShellMojo.execute()V+1
j org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/plugin/MojoExecution;)V+166
j org.apache.maven.lifecycle.internal.MojoExecutor.execute(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/plugin/MojoExecution;Lorg/apache/maven/lifecycle/internal/ProjectIndex;Lorg/apache /maven/lifecycle/internal/DependencyContext;)V+215
j org.apache.maven.lifecycle.internal.MojoExecutor.execute(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/plugin/MojoExecution;Lorg/apache/maven/lifecycle/internal/ProjectIndex;Lorg/apache /maven/lifecycle/internal/DependencyContext;Lorg/apache/maven/lifecycle/internal/PhaseRecorder;)V+6
j org.apache.maven.lifecycle.internal.MojoExecutor.execute(Lorg/apache/maven/execution/MavenSession;Ljava/util/List;Lorg/apache/maven/lifecycle/internal/ProjectIndex;)V+60
j org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/lifecycle/internal/ReactorContext;Lorg/apache /maven/project/MavenProject;Lorg/apache/maven/lifecycle/internal/TaskSegment;)V+151
j org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/lifecycle/internal/ReactorContext;Lorg/apache/maven/project/MavenProject;Lorg/apache /maven/lifecycle/internal/TaskSegment;)V+7
j org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/lifecycle/internal/ReactorContext;Lorg/apache/maven/lifecycle/internal /ProjectBuildList;Ljava/util/List;Lorg/apache/maven/lifecycle/internal/ReactorBuildStatus;)V+77
j org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lorg/apache/maven/execution/MavenSession;)V+336
j org.apache.maven.DefaultMaven.doExecute(Lorg/apache/maven/execution/MavenExecutionRequest;)Lorg/apache/maven/execution/MavenExecutionResult;+557
j org.apache.maven.DefaultMaven.execute(Lorg/apache/maven/execution/MavenExecutionRequest;)Lorg/apache/maven/execution/MavenExecutionResult;+11
j org.apache.maven.cli.MavenCli.execute(Lorg/apache/maven/cli/MavenCli$CliRequest;)I+19
j org.apache.maven.cli.MavenCli.doMain(Lorg/apache/maven/cli/MavenCli$CliRequest;)I+61
j org.apache.maven.cli.MavenCli.main([Ljava/lang/String;Lorg/codehaus/plexus/classworlds/ClassWorld;)I+18
v ~StubRoutines::call_stub
j sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
j sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87
j sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+57
j org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced([Ljava/lang/String;)V+45
j org.codehaus.plexus.classworlds.launcher.Launcher.launch([Ljava/lang/String;)V+2
j org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode([Ljava/lang/String;)I+101
j org.codehaus.plexus.classworlds.launcher.Launcher.main([Ljava/lang/String;)V+1
v ~StubRoutines::call_stub
4

1 に答える 1

1

スタックトレースによると、そのエラーは GWT コンパイラが関与する前でも発生します: gwt-maven-plugin がモジュールを再コンパイルする必要があるかどうかを識別しようとすると (または実際にコンパイルする必要がある場合: プラグインはコンパイルをスキップします)エントリポイントがない場合)。

アルゴリズムには欠陥がある可能性が高く (たとえば、名前が で始まるcom.google.gwt.が、依存関係 (たとえば GIN) からのモジュールを含む可能性のある継承されたモジュールを除外し、GWT 固有のモジュールには、この階層ではなく(ただし、) モジュールがありますcom.google.web.bindery)、バグがある可能性がありますが、この場合、不正な形式の JAR または同様のもので窒息すると思います。

ローカル リポジトリ ( ~/.m2/repository) をクリーンアップして、依存関係を再ダウンロードしてみてはいかがでしょうか。

または、コマンドを使用して Maven を実行しmvnDebug、デバッガーをアタッチして、スタックトレースで識別されたメソッドのどこかにブレークポイントを設定し、どの JAR が破損している可能性があるか (少なくともどれが JVM をクラッシュさせるか) を見つけようとします。

于 2014-08-28T21:25:55.323 に答える