2009-01-13 5 views
10

Arama yapmayı denedim, ancak kendi paketlerinizi bir GWT projesine nasıl ekleyeceğiniz konusunda tanımlı bir yol bulamadı.Java paketlerini GWT'ye ekleme

Benim ağaç yapısı aşağıdaki gibidir:

-com.mycompany 
    -public 
    MyApplication.html 
    MyApplication.gwt.xml 


-com.mycompany.client 
    MyApp.java 

-com.mycompany.gui 
    TableLayout.java 
Oraya gördüğüm cevap, gwt.xml dosyasının kök dizinine göre paketler eklemek şöyle diyor

:

<module> 
    <inherits name="com.google.gwt.user.User" /> 
    <entry-point class="com.mycompany.client.MyApp" /> 
    <source path="client" /> 
    <source path="gui" /> 
</module> 

Daha sonra yakınır:

Unable to find type 'com.technicon.client.MyApp' 
    Hint: Previous compiler errors may have made this type unavailable 
    Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly 

kimse yanlış yaptığını ve nasıl bunu düzeltmek ettiğimi söyleyebilir misiniz?

cevap

5

İki kaynak yolu hattından kurtulursunuz, çünkü varsayılan olarak GWT, root'la ve istemci paketinizdeki gibi bir şey alır. Ayrıca istemci paketi içine gui paketi taşımak gerekir, bu yüzden olacaktı:

-com.mycompany 
    -public 
    MyApplication.html 
    MyApplication.gwt.xml 


-com.mycompany.client 
    MyApp.java 

-com.mycompany.client.gui 
    TableLayout.java 


<module> 
    <inherits name="com.google.gwt.user.User" /> 
    <entry-point class="com.mycompany.client.MyApp" /> 
</module> 

varsayarsak sizin MyApp.java gerçek GirişNoktası, o zaman bu sadece iyi çalışması gerekir. Not alınacak diğer bir nokta da, GWT JRE Öykünme kitaplığının parçası olmayan java sınıflarını kullanamazsınız ve eğer projeniz varsa derleme yapmazsınız. Bununla ilgili çok özel hatalar almalısınız. Örneğin, taklit edilmezlerse java.math.BigDecimal gibi kitaplık sınıflarını kullanamazsınız. Oluşturduğunuz kendi sınıflarınızın tümü de kullanılabilir.

9

, @rustyshelf'in işaret ettiği gibi, gwt otomatik olarak client.*'un altındaki her şeyi dönüştürecektir, bazı şeyleri müşteri paketlerinizin dışında tutmak isteyeceğiniz zamanlar olacaktır (bunları birkaç projede yeniden kullanmak bunlardan biri olabilir)) ve bunun için çözüm hala source elemanını kullanarak prosese başka paketler eklemeye devam ediyor.

şimdi bir numara var, gwt.xml yapılandırma dosyasını taşımak isteyip istemediğinize veya yeni bir tane oluşturmanız gerekip gerekmediğine karar vermelisiniz.

(her iki paket paket içinde bir kökü paylaşan, com.mycompany) özellikle dava için

sadece üst En yaygın pakete <project_name>.gwt.xml dosya taşımak ve sadece bir kaynak olarak paket eklemek (ve tutmak orada <source path="client"/> yanı) böylece gibi görünmek dosyanızı yapma: paketler sadece tek kaynak elemanları ile yeni bir *.gwt.xml dosyası oluşturun ve bir koyun, herhangi kökü paylaşan yoksa diğer taraftan

<source path="client"/> 
<source path="gui"/> 

<module> 
    <source path=""/> 
</module> 
: eklemek istediğiniz alt pakete, yani ana paket yuvalanmış alt paketlere derleme-erişim vermek gerekirse tekrar yoluna almak ve kod mümkün olan en iyi şekilde organize bu yardım umut

"admin/client" gibi bir / ile ayırarak bunu yapmasını

not.