簡體   English   中英

GWT - 將外部Java類添加到客戶端項目

[英]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注意事項:

  1. GWT將查看目錄(和子目錄)中的所有類

  2. 包中的類必須存在於源文件中,並且可能不包含對GWT無法解析的其他庫的任何引用(當使用引用特定數據庫用法的dto類注釋時,這可能是一個限制)。

更新:重寫的答案更具體。

我會嘗試更具體。 我的工作區結構是:工作區

  1. LocateMeModel
  2. LocateMeServer
  3. LocateMeMobile
  4. LocateMeWeb

LocateMeWeb是一個具有標准項目布局的GWT應用程序。 在LocateMeModel中,我有Java類,它們定義了LocateMeWeb,LocateMeMobile和LocateMeServer常用的dto(數據傳輸對象)。 因此,我需要GWT從此目錄(LocateMeModel)獲取文件並將其編譯為客戶端代碼。 有可能嗎? 從我看到GWT只允許代碼必須在GWT項目的客戶端目錄下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM