[英]GWT - adding external java classes to client project
我有一個GWT項目。 客戶端代碼位於“客戶端”目錄中。 我想附加外部目錄中的外部java類(主要是普通的POJO DTO類)。 如何配置gwt.xml文件?
我得到這種錯誤:
[錯誤]'文件中的錯誤:/ C:/development/projects/CodeSpaces/LocateMe/LocateMeWeb/src/com/dominolog/locateme/client/LocateMeWeb.java'[錯誤]第56行:沒有源代碼可用於類型com .dominolog.locateme.model.dto.LocationInfo; 你忘了繼承一個必需的模塊嗎?
如果你有java源文件,你只需要將目錄添加到.gwt.xml文件中。 例如,如果您有一個名為shared的子目錄,您將添加以下行:
<source path='shared'/>
名為shared的文件夾必須是主程序包下的一個級別。 因此,如果您將項目.gwt.xml文件放在com.yourdomain.project,那么共享文件夾.package將是com.yourdomain.project.shared。 請參閱http://code.google.com/webtoolkit/doc/latest/DevGuideOrganizingProjects.html#DevGuideModules上的“ 源路徑”部分
如果您沒有源代碼並且只有類,則必須按照Hilbrand的說明導入模塊。
這是另一個有效的解決方案http://www.gordonizer.com/2012/01/referencing-third-party-library-source.html 。
我做空(以防這個鏈接有一天也無效):
com.foo.bar.bat
。 com.foo.bar
(沒有子包bat
)。 在新包中,您將創建一個新的GWT模塊文件Foo.gwt.xml
,其內容類似於
<module>
<source path="bat" />
</module>
(為了便於閱讀,我省略了XML標題)
最后使用inherit
標記將此新模塊添加到主GWT模塊:
<inherits name="com.foo.bar.Foo"/>
GWT要使用的任何Java類都必須具有模塊文件,並且符合包含子包的包結構。 有關更多詳細信息,請參閱此stackoverflow答案: 將Java包添加到GWT 。 在這種情況下,可以在包含以下內容的com.dominolog.locateme.model
目錄中創建模塊文件(例如model.gwt.xml
):
<module>
<source path="dto" />
</module>
在主模塊文件中添加對此模塊文件的引用,然后GWT將獲取com.dominolog.locateme.model.dto
包中的所有類。
2注意事項:
GWT將查看目錄(和子目錄)中的所有類
包中的類必須存在於源文件中,並且可能不包含對GWT無法解析的其他庫的任何引用(當使用引用特定數據庫用法的dto類注釋時,這可能是一個限制)。
更新:重寫的答案更具體。
我會嘗試更具體。 我的工作區結構是:工作區
LocateMeWeb是一個具有標准項目布局的GWT應用程序。 在LocateMeModel中,我有Java類,它們定義了LocateMeWeb,LocateMeMobile和LocateMeServer常用的dto(數據傳輸對象)。 因此,我需要GWT從此目錄(LocateMeModel)獲取文件並將其編譯為客戶端代碼。 有可能嗎? 從我看到GWT只允許代碼必須在GWT項目的客戶端目錄下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.