2014-09-05 3 views
1

나는 다른 사람들이 GWT 컴파일에 문제가 있음을 알고 있지만,이 경우 나는 손실에 처해있다. GWT 2.6.1과 동일한 버전의 gwt-maven-plugin 2.6.1을 사용 중입니다.GWT 2.6.1 알 수없는 컴파일 문제

먼저 GWT 및/또는 SmartGWT가 JDK 1.8을 지원합니까, 아니면 지금 1.7입니까? jdk 1.7을 사용하고 있지만 결국 1.8을 시험해보고 싶습니다.

둘째, Eclipse에서 메이븐 빌드를 할 때이 오류가 발생합니다 ... GWT Eclipse Plugin에서 GWT 컴파일을 할 때 프로젝트를 마우스 오른쪽 버튼으로 클릭하면 GWT Compile 그리고 아무런 문제가 없습니다.

[INFO] --- gwt-maven-plugin:2.6.1:compile (default) @ rm-ui --- 
[INFO] auto discovered modules [com.redi2.products.rm.RevenueManager] 
[INFO] Compiling module com.redi2.products.rm.RevenueManager 
[INFO] [ERROR] Unexpected internal compiler error 
[INFO] java.lang.NoSuchFieldError: warningThreshold 
[INFO] at com.google.gwt.dev.javac.JdtCompiler$1.<init>(JdtCompiler.java:505) 
[INFO] at com.google.gwt.dev.javac.JdtCompiler.getStandardCompilerOptions(JdtCompiler.java:503) 
[INFO] at com.google.gwt.dev.javac.JdtCompiler.getCompilerOptions(JdtCompiler.java:533) 
[INFO] at com.google.gwt.dev.javac.JdtCompiler.doCompile(JdtCompiler.java:878) 
[INFO] at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:284) 
[INFO] at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:511) 
[INFO] at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:434) 
[INFO] at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:420) 
[INFO] at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:495) 
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:241) 
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:223) 
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:139) 
[INFO] at com.google.gwt.dev.Compiler.run(Compiler.java:167) 
[INFO] at com.google.gwt.dev.Compiler.run(Compiler.java:132) 
[INFO] at com.google.gwt.dev.Compiler$1.run(Compiler.java:99) 
[INFO] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55) 
[INFO] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50) 
[INFO] at com.google.gwt.dev.Compiler.main(Compiler.java:106) 

다음 단계는 Eclipse에서 나가서 mvn 빌드를 명령 줄에서 시도한 것이고 작동하지 않습니다. 그래서, 나는 다음을 수행 : 처음에는

mvn clean - and that correctly deletes my target directory and the gwt-unitCache. 
mvn gwt:clean 
mvn -X -e gwt:compile --debug 

, 그것이 나의 찾을 수 없습니다 내게 말하고 있었다 : com.tholmes.products.App.gwt.xml 를하지만, 내가 아는 내가 심지어있다 파일을 삭제하고 다시 추가했습니다. 클래스 패스의 상당 부분을 차지하고 있으며 올바른 형식으로 존재합니다.

mvn gwt:eclipse 
mvn gwt:eclipseTest 

이것은가 gwt.xml 파일을 찾을 수 있다는 문제를 해결하기 위해 듯 :

그래서, 나는했다.

이제 다시 시도해 보겠습니다. 그러면 디버그 및 스택 추적이 모두 표시됩니다. (

...\tholmes\.m2\repository\com\google\gwt\gwt-dev\2.6.1\gwt-dev-2.6.1.jar    
com.google.gwt.dev.Compiler -logLevel INFO -style OBF -war C:\Users\tholmes\git\rm_ui 
\target\rm-ui-0.0.1-SNAPSHOT -localWorkers 4 -XfragmentCount -1 -sourceLevel auto -gen C:\Users\tholmes\git\rm_ui\target\.generated com.redi2.products.rm.RevenueManager 

] 가 org.apache.maven.lifecycle.internal.MojoExecutor.execute에서 상태 1 에 실패 MojoExecutor.java :

[INFO] Compiling module com.redi2.products.rm.RevenueManager 
[INFO] [ERROR] Unexpected internal compiler error 
[INFO] java.lang.NoSuchFieldError: warningThreshold 
[INFO] at com.google.gwt.dev.javac.JdtCompiler$1.<init>(JdtCompiler.java:505) 
[INFO] at com.google.gwt.dev.javac.JdtCompiler.getStandardCompilerOptions(JdtCompiler.java:503) 
[INFO] at com.google.gwt.dev.javac.JdtCompiler.getCompilerOptions(JdtCompiler.java:533) 
[INFO] at com.google.gwt.dev.javac.JdtCompiler.doCompile(JdtCompiler.java:878) 
[INFO] at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:284) 
[INFO] at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:511) 
[INFO] at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:434) 
[INFO] at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:420) 
[INFO] at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:495) 
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:241) 
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:223) 
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:139) 
[INFO] at com.google.gwt.dev.Compiler.run(Compiler.java:167) 
[INFO] at com.google.gwt.dev.Compiler.run(Compiler.java:132) 
[INFO] at com.google.gwt.dev.Compiler$1.run(Compiler.java:99) 
[INFO] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55) 
[INFO] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50) 
[INFO] at com.google.gwt.dev.Compiler.main(Compiler.java:106) 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 11.522s 
[INFO] Finished at: Fri Sep 05 11:00:36 EDT 2014 
[INFO] Final Memory: 15M/222M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.codehaus.mojo:gwt-maven-plugin:2.6.1:compile (default-cli) on project rm-ui: Command [[ 

은 여기에 거대한 클래스 경로로 끝나는있다 : 216) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) at org .apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModu leBuilder.java:84) org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild에서 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) 에서 (LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:318) at org.apache.maven.DefaultMaven. execute (DefaultMaven.java:153) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:555) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:214) at org.apache.maven.cli.MavenCli.main (MavenCli.java:158) at sun.reflect.NativeMethodAccessorImpl.invoke0 (네이티브 메소드)java.lang.reflect.Method.invoke에서 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) 에서 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) 에서 16,(Method.java:606) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230) at org.codehaus. 총.org.codehaus.plexus.classworlds.launcher.Launcher.main에서 classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:414) (Launcher.java:357)

다음 말한다 :

Caused by: org.codehaus.mojo.gwt.shell.ForkedProcessExecutionException: Command [[ 

에 거대한 클래스 경로가 있고 마지막으로 ...

... \ tholmes.m2 \ repository \ com \ google \ gwt \ gwt-dev \ 2.6.1 \ gwt-dev-2.6.1로 끝납니다. jar com.google.gwt.dev.Compiler -logLevel INFO-style OBF -war C : \ Users \ tholmes \ git \ rm_ui \ target \ rm-ui-0.0.1-SNAPSHOT -local 근로자 4 -XfragmentCount -1 -sourceLevel 자동 -gen의 C : \ 사용자 \ tholmes \ 자식 \ rm_ui \ target.generated com.redi2.products.rm.RevenueManager ]
에서 상태 1 에 실패 org.codehaus org.codehaus.mojo.gwt.shell.CompileMojo.compile (CompileMojo.java:446) 에서 JavaCommand.execute .shell.CompileMojo.doExecute (CompileMojo.java:351) at org.codehaus.mojo.gwt.shell.AbstractGwtShellMojo.execute (AbstractGwtShellMojo.java:172) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager .java : 106) at org.apache.maven.lifecycle.intern al.MojoExecutor.execute (MojoExecutor.java:208) ... 더보기 (19)

[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

나는 이틀 동안,이를 알아 내려고 세에 진행했습니다.
이것은 우리 지역의 자식 프로젝트이며, 새로운 UI 프로젝트를 처음부터 수정하지 않아도됩니다.

감사합니다.

답변

4

먼저 GWT 및/또는 SmartGWT가 JDK 1.8을 지원합니까, 아니면 지금 1.7입니까? jdk 1.7을 사용하고 있지만 결국 1.8을 시험해보고 싶습니다.

2.6의 GWT 컴파일러는 Java 1.8을 지원하지 않습니다. git의 GWT의 현재 버전은 지원하지 않지만 유지 관리를 지원하는 포크가 유지 관리됩니다. 매우 짧은 버전의 이슈 : 언어 기능 자체가 너무 나쁘지는 않습니다 (포크에 이미 포함되어 있습니다). 그러나 새로운 JRE 라이브러리 기능도 포팅해야합니다. (합법적으로 오라클 코드, 그런 식으로 소송을 거짓말).

java.lang.NoSuchFieldError: warningThreshold 

클래스 경로와 관련된 두 가지 문제가 발생할 수 있습니다.

첫 번째 문제는 gwt 버전 문제입니다. 클래스 경로에서 GWT 버전을 어떻게 든 섞어서 일치시킵니다. 전체 내용을 살펴보십시오 (그러나이 질문에는 포함되어 있지 않으므로 자세한 내용을 제공 할 수는 없습니다). GWT 2.5 또는 2.4의 추가 사본이 어딘가에있을 것입니다. 나는 GWT 업그레이드에 특정한 경향이 있기 때문에 이것이 가장 가능성이 높다고 생각합니다.

또 다른 옵션은 GWT 2.6이 새 JDT 버전으로 업데이트 된 이후에 다른 곳에서 클래스 경로에 다른 JDT를 설치하는 것입니다. 관련 질문 GWT + Spring hosted mode not working을 참조하십시오. 이것은 dev 모드에 대한 이야기이지만 동일한 생각입니다. 이것은 이후 나보다 가능성이 낮습니다 이클립스 또는 메이븐에 상관없이 동일한 클래스 경로를 사용해야하지만, 여전히 가능합니다.

+1

귀하의 의견에 가까이 있다고 생각합니다. 이 전체 시스템에는 다른 GWT가 없었습니다. 그것은 2.6.0이었고 2.6.1이었습니다. JDT가 있었고 문제가 될 수 있었는데 사이트에서 해답을 찾았습니다 : \t true를 maven-gwt-plugin 구성의 pom.xml에 추가하여 해결했습니다. – tjholmes66

관련 문제