2011-11-10 206 views
0

我努力學習PlayN,創建Maven項目並添加依賴 後的pom.xml錯誤與Maven依賴於PlayN項目

enter code here 
<dependency> 
    <groupId>com.threerings</groupId> 
    <artifactId>tripleplay</artifactId> 
    <version>1.0</version> 
</dependency> 

我使用三網合一庫類的菜單系統,如在Showcase顯示 演示項目。當運行項目作爲Java應用程序都可以, 但是當作爲HTML應用程序我得到了這樣的

錯誤ant.bat運行HTML

.... [java] com.google.gwt.dev.jjs.InternalCompilerException: Failed to get JNode [java] at com.google.gwt.dev.jjs.impl.TypeMap.get(TypeMap.java:140) [java] at com.google.gwt.dev.jjs.impl.TypeMap.get(TypeMap.java:71) [java] at com.google.gwt.dev.jjs.impl.BuildTypeMap.getType(BuildTypeMap.java:730) [java] at com.google.gwt.dev.jjs.impl.BuildTypeMap.createField(BuildTypeMap.java:570) [java] at com.google.gwt.dev.jjs.impl.BuildTypeMap.access$300(BuildTypeMap.java:99) [java] at com.google.gwt.dev.jjs.impl.BuildTypeMap$BuildDeclMapVisitor.visit(BuildTypeMap.java:180) [java] at org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.traverse(FieldDeclaration.java:285) [java] at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1232) [java] at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:687) [java] at com.google.gwt.dev.jjs.impl.BuildTypeMap.createPeersForNonTypeDecls(BuildTypeMap.java:637) [java] at com.google.gwt.dev.jjs.impl.BuildTypeMap.exec(BuildTypeMap.java:514) [java] at com.google.gwt.dev.jjs.impl.BuildTypeMap.exec(BuildTypeMap.java:523) [java] at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:599) [java] at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:33) [java] at com.google.gwt.dev.Precompile.precompile(Precompile.java:284) [java] at com.google.gwt.dev.Precompile.precompile(Precompile.java:233) [java] at com.google.gwt.dev.Precompile.precompile(Precompile.java:145) [java] at com.google.gwt.dev.Compiler.run(Compiler.java:232) [java] at com.google.gwt.dev.Compiler.run(Compiler.java:198) [java] at com.google.gwt.dev.Compiler$1.run(Compiler.java:170) [java] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88) [java] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:82) [java] at com.google.gwt.dev.Compiler.main(Compiler.java:177) [java] [ERROR] <no source info>: public class tripleplay.ui.Interface [java] extends java.lang.Object [java] /* fields */ [java] public final [unresolved] playn.core.Pointer.Listener plistener [java] public final [unresolved] playn.core.Keyboard.Listener klistener [java] protected final [unresolved] playn.core.Pointer.Listener _delegate [java] protected final [unresolved] Unresolved type react.Value<playn.core.Keyboard.Listener> _focused [java] protected final [unresolved] List<Unresolved type tripleplay.ui.Root> _roots [java] protected final [unresolved] List<Unresolved type tripleplay.ui.Root> _dispatch [java] protected final [unresolved] List<Unresolved type java.lang.Runnable> _actions 有什麼錯?謝謝

回答

2

奇怪的是,GWT編譯器會崩潰,而不是產生一個正常的錯誤消息。但看起來您需要將三重播放GWT模塊添加到您的GWT項目中。

在你的遊戲中,你將有一個則名爲類似的文件:

mygame/html/src/main/java/mypackage/mygame/MyGame.gwt.xml

在該文件中,你需要添加:

<inherits name="tripleplay.TriplePlay"/>

,將讓GWT知道它可以並且應該在編譯JavaScript時使用TriplePlay源代碼。

+0

謝謝!它幫助我 –

+0

我試過這個,但現在我得到了「GWT模塊tripleplay.TriplePlay找不到項目源或資源。」 我看到在庫> MavenDependancys中的tripleplay-1.8.5.jar,所以我不知道爲什麼它不能找到它。 我試過清潔/ maven清潔/重建,但總是不變。 : - / – darkflame