2012-04-03 5 views
1

Ich kann die Java-Version von meinem Projekt fein durch einfachen Import Guava Bibliotheken wie so läuft:Wie kann ich in PlayN die HTML-Version meines Projekts mit Google Guava-Bibliotheken kompilieren?

import com.google.gwt.thirdparty.guava.common.collect.ImmutableList; 

Auf Anraten here habe ich diese Zeile hinzugefügt/pom.xml html:

<dependency> 
    <groupId>com.google.guava</groupId> 
    <artifactId>guava-gwt</artifactId> 
    <version>10.0.1</version> 
</dependency> 

und diese Zeile html/project.gwt.xml Datei:

<inherits name="com.google.common.collect.Collect"/> 

Aber wenn ich versuche GWT-Kompilieren meiner HTML-Version in Eclipse, bekomme ich Fehler lik e das folgende:

[ERROR] Line 61: No source code is available for type com.google.gwt.thirdparty.guava.common.collect.ImmutableList<E>; did you forget to inherit a required module? 
+0

Ich habe [diesen Beitrag] (http://stackoverflow.com/questions/7794014/guava-gwt-and-eclipse) über das Ändern des Klassenpfads zu com.google.co gesehen mmon.base. Probieren Sie es aus, aber es schien alles nur noch schlimmer zu machen. – klenwell

+0

Ich denke, es sollte "com.google.common.collect" in Ihrem Fall sein. –

Antwort

3

Ich denke, dass Sie möglicherweise die falsche Klasse importieren. Versuchen Sie, den com.google.gwt.thirdparty.guava.common.collect.ImmutableList Import durch com.google.common.collect.ImmutableList zu ersetzen.

Hier ist eine ähnliche Frage über die Lists Klasse: Trouble with GWT and Guava

+0

Also müsste ich dann alle meine Importanweisungen von 'import com.google.gwt.thirdparty.guava.common.collect.Foo;' nach 'com.google.common.collect.Foo;'? – klenwell

+1

Ich stimme zu, dass Sie das tun sollten. –

+1

Ja, du hättest das gwt.thirdparty-Ding nie importieren dürfen. Das ist GWTs interne Kopie alter Versionen unseres Codes. –

2

ich @eneveu's answer ausgewählt, wie es mir in der richtigen Richtung bekam. Hier finden Sie genauere Anweisungen zum Aktivieren von Guava in der HTML-Version Ihres PlayN-Projekts.

1. In Abhängigkeit YourGame-core/pom.xml

<dependency> 
    <groupId>com.google.guava</groupId> 
    <artifactId>guava-gwt</artifactId> 
    <version>11.0.2</version> 
</dependency> 

2. Rechtsklick auf YourGame-core Verzeichnis in Paket-Explorer-Fenster, dann: Maven> Update Abhängigkeiten

3. Fügen Sie für HTML5 diese Zeile zu YourGame-html/YourGame.gwt.xml hinzu:

<inherits name="com.google.common.collect.Collect"/> 

4. Beim Import verwenden, um den richtigen Bibliothek Pfad:

import com.google.common.collect.Foo; 
/* NOT: import com.google.gwt.thirdparty.guava.common.collect.Foo; */ 

ich den Code auf dem unten stehenden Link und getestet in Chrome zusammengestellt, um sicherzustellen, dass Guava erfolgreich importiert wird: