GWT v1.5.x 整合到Web App的目錄結構,使用MyEclipse和Ant

為了使GWT產生的UI能整合在Web Application的目錄結構,在用MyEclipse的情況下,使用了Ant簡化編譯和部署的流程,寫成了這個筆記。

先決條件:
  1. MyEclipse安裝妥當。


  2. 將GWT的安裝目錄設定到path,例如「path=C:\gwt-windows-1.4.62」。

步驟:
  1. 啟動「命令提示字元」,切換執行目錄到eclipse的workspace,例如「C:\_Workspace\_Projects」。


  2. 建立一個目錄,目錄名稱為專案名稱,例如「MyProject」,並切換到此目錄下。



  3. 執行「projectCreator -eclipse」產生eclipse相關的專案檔案,例如「projectCreator -eclipse MyProject」。


  4. 執行「applicationCreator -eclipse」產生範例程式,例如「applicationCreator -eclipse MyProject my.client.MyApplication」。


  5. 啟動eclipse,匯入剛建立的「MyProject」,選擇「Existing Projects into Workspace」。


  6. 在「MyProject」下建立目錄,例如「war」,作為MyEclipse的web root。



  7. 執行MyEclipse的「Add Web Capabilities」。


  8. 在「MyProject」下建立buildfile,例如「build.xml」,內容如下:


  9. <?xml version="1.0" encoding="UTF-8"?>
    <project name="buildMyProject" basedir="." default="dist">
    <property name="GwtOutputDir" value="www"/>
    <property name="webRoot" value="war"/>
    <property name="distDir" value="dist"/>
    <property name="warFile" value="myproject.war"/>

    <target name="buildMyApplication"
    description="Call the GWT compiler for MyApplication, and copy all of the compiled files to the subdir 'my' of web root">
    <exec executable="cmd">
    <arg value="/c"/>
    <arg value="MyApplication-compile.cmd"/>
    </exec>
    <delete dir="${webRoot}/my"/>
    <copy todir="${webRoot}/my">
    <fileset dir="${GwtOutputDir}/my.MyApplication"/>
    </copy>
    </target>

    <target name="dist" depends="buildMyApplication"
    description="make a war file in dir 'dist' for deployment">
    <delete dir="${distDir}"/>
    <mkdir dir="${distDir}"/>
    <war destfile="${distDir}/${warFile}" webxml="${webRoot}/WEB-INF/web.xml">
    <fileset dir="${webRoot}"/>
    </war>
    </target>
    </project>

  10. 使用Ant執行此build.xml,會在dirt目錄產生myproject.war,用來部署到ap server。


  11. 原本GWT產生的檔案在「www/my.MyApplication」,把www當web root(例如命名為myproject)部署到ap server時,URL是「http://localhost/myproject/my.MyApplication/MyApplication.html」,而經過buildfile的
    調整後,URL會變成有子目錄的形式:「http://localhost/myproject/my/MyApplication.html」。

1 意見:

Cojo 提到...

請問下,我在導入到myeclipse里面后, 又創建了類, 怎么build就不成功了?