2010-10-26 39 views
10

Ai đó có thể cho tôi biết những gì tôi cần làm để bật hỗ trợ Guava trong GWT.Sử dụng ổi với GWT

Tôi đã tải Ổi R07 và trong đó có hai tập tin sau đây:

  • ổi-r07.jar
  • ổi-R07-gwt.jar

Tôi có một vài các câu hỏi liên quan đến điều này:

  1. Các tệp này sẽ đi đâu? Tôi đoán rằng Jar chuẩn được tạo sẵn cho IDE của tôi để mã hóa và cả hai đều được cung cấp cho trình biên dịch GWT để xây dựng JavaScript?
  2. Tôi có cần thêm tất cả các tệp .gwt.xml từ tệp -gwt.jar vào tệp gwt.xml chính của dự án của tôi hoặc chỉ các phần tôi cần không?
  3. Có các lọ khác trên thân của dự án GW2 & GWT (nghĩa là không có trong bản tải xuống, chẳng hạn như một cho jsr305) mà tôi nghĩ rằng tôi có thể cần, nhưng tôi không chắc chắn.

Xin lỗi, thông thường tôi không gặp vấn đề với loại điều này, nhưng tôi không thể tìm ra điều gì xảy ra ở đâu.

FYI Tôi đang sử dụng GWT 1.6 trong thời gian này, nhưng tôi hy vọng sẽ sớm chuyển sang 2. Nếu ổi không tương thích với 1,6 thì đó không phải là vấn đề.

Cập nhật

tôi có các tập tin sau đây trong một thư mục có tên gwtlib:

  • ổi-R07-gwt.jar
  • ổi-r07.jar
  • jsr305-1.3.9. jar

Và tập lệnh Ant của tôi thực hiện như sau:

<path id="project.class.path"> 
    <fileset dir="gwtlibs" includes="guava-r07.jar"/> 
    <fileset dir="gwtlibs" includes="guava-r07-gwt.jar"/> 
    <fileset dir="gwtlibs" includes="jsr305-1.3.9.jar"/> 
    <pathelement location="${gwt.sdk}/gwt-user.jar"/> 
    <fileset dir="${gwt.sdk}" includes="gwt-dev*.jar"/> 
</path> 

<target name="gwtc"> 
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler"> 
     <classpath> 
      <pathelement location="app"/> 
      <path refid="project.class.path"/> 
     </classpath> 
     <jvmarg value="-Xmx256M"/> 
     <arg value="-localWorkers"/> 
     <arg value="2"/> 
     <arg value="-war"/> 
     <arg value="gwt-public"/> 
     <arg value="Main"/> 
    </java> 
</target> 

Chạy lệnh trên, tôi nhận được các lỗi sau đây:

  • lỗi trong 'jar: file:! ///project/gwtlibs/guava-r07-gwt.jar/com/google/common /collect/Constraints.java'
  • Dòng 254: phương pháp sublist (int, int) là undefined cho kiểu List

Nếu không có sự jar JSR trên classpath, tôi nhận được các lỗi sau đây:

  • Nhập khẩu javax.chú thích không thể giải quyết
  • Nullable không thể giải quyết cho một loại

Cảm ơn

Giàu

+0

Đây là câu hỏi tương tự với câu trả lời: http://stackoverflow.com/questions/2005687/guava -thư viện-và-gwt/6201161 # 6201161 – Hbf

+0

Thực tế việc sử dụng không có vấn đề gì. http://pgt.de/2012/07/11/using-guava-with-gwt/ –

+0

Cảm ơn Papick - Tôi đã hỏi câu hỏi của tôi gần 2 năm trước - kể từ đó cả GWT và ổi đã phát triển đáng kể và các phiên bản gần đây của GWT và ổi chắc chắn tương thích với nhau. – Rich

Trả lời

3

Ổi không tương thích với GWT 1.6. List.subList, cụ thể, được thêm vào GWT trong GWT 2. Phiên bản đầu tiên mà chúng tôi hỗ trợ đầy đủ là GWT 2.0.4

+3

Câu trả lời này không thực sự giải thích làm thế nào để có được ổi để làm việc theo GWT. Vui lòng cập nhật nó cho phù hợp. – Gili

+1

Bắt Guava làm việc trong GWT 2.0.4 trở lên khá dễ dàng, bạn chỉ cần đưa nó vào classpath giống như bất kỳ thư viện nào khác (lưu ý bất kỳ JG-specific Jars nào) và trình biên dịch GWT thực hiện phép thuật của nó. Câu trả lời của Hayward cho câu hỏi ban đầu của tôi (về cơ bản là "tại sao không phải là Guava làm việc trên GWT 1.6?") Là đủ để tôi thấy rằng tôi đang lãng phí thời gian của mình để làm cho nó hoạt động. – Rich

13
  1. Thêm các lọ vào classpath của bạn. Nếu bạn đang sử dụng IDE, hãy thêm chúng vào Đường dẫn xây dựng của bạn bằng cách nhấp chuột phải vào "Thư viện tham chiếu" trong Gói lưu trữ của bạn, chọn "Định cấu hình đường dẫn xây dựng" và thêm chúng dưới dạng JAR bên ngoài.
  2. Bạn chỉ cần kế thừa các mô-đun bạn định sử dụng trong tệp .gwt.xml của mình. Ví dụ: nếu bạn chỉ sử dụng gói common.collect, chỉ cần thêm <inherits name="com.google.common.collect.Collect" />
  3. Có thể bạn không cần jsr305.jar, nhưng nếu bạn làm như vậy, chỉ cần thêm nó giống như cách bạn thêm các lọ khác.

Ổi nên hoạt động tốt với GWT 1.6, nếu không thì nó có thể là lỗi.

+0

Tôi đã chỉnh sửa câu hỏi của mình với thông tin khác ... điều đó có làm sáng tỏ chủ đề không? – Rich

+0

Âm thanh như bạn cần jsr305.jar rồi. Đối với vấn đề khác của bạn, tôi không thấy những gì có thể gây ra điều đó ... –

+1

Tuy nhiên, bạn sẽ muốn đảm bảo bạn gắn bó với các lớp học bằng chú thích @GwtCompatible. –

Các vấn đề liên quan