webAppCreator

查看webAppCreator的帮助,如下:

使用方法如下:

webAppCreator [options] <moduleName>

options如下:

使用示例:

webAppCreator -out GWTProject com.fpliu.GWTProject

运行效果如下:

生成的工程目录结构如下:

显然,这是一个Eclipse工程,使用Ant管理的。

打开工程根目录下的Ant的配置文件build.xml的内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<project name="GWTProject" default="build" basedir=".">
    <!-- Arguments to gwtc and devmode targets -->
    <property name="gwt.args" value="" />

    <!-- Configure path to GWT SDK -->
    <property name="gwt.sdk" location="/usr/local/Cellar/gwt/2.8.0/libexec" />

    <path id="project.class.path">
        <pathelement location="war/WEB-INF/classes"/>
        <pathelement location="${gwt.sdk}/gwt-user.jar"/>
        <pathelement location="${gwt.sdk}/gwt-dev.jar"/>
        <pathelement location="${gwt.sdk}/validation-api-1.0.0.GA.jar"/>
        <pathelement location="${gwt.sdk}/validation-api-1.0.0.GA-sources.jar"/>
        <fileset dir="war/WEB-INF/lib" includes="**/*.jar"/>
        <!-- Add any additional non-server libs (such as JUnit) here -->
    </path>

    <target name="libs" description="Copy libs to WEB-INF/lib">
        <mkdir dir="war/WEB-INF/lib" />
        <copy todir="war/WEB-INF/lib" file="${gwt.sdk}/gwt-servlet.jar" />
        <copy todir="war/WEB-INF/lib" file="${gwt.sdk}/gwt-servlet-deps.jar" />
        <!-- Add any additional server libs that need to be copied -->
    </target>

    <target name="javac" depends="libs" description="Compile java source to bytecode">
        <mkdir dir="war/WEB-INF/classes"/>
        <javac srcdir="src" includes="**" encoding="utf-8"
               destdir="war/WEB-INF/classes"
               source="1.7" target="1.7" nowarn="true"
               debug="true" debuglevel="lines,vars,source">
            <classpath refid="project.class.path"/>
        </javac>
        <copy todir="war/WEB-INF/classes">
            <fileset dir="src" excludes="**/*.java"/>
        </copy>
    </target>

    <target name="gwtc" depends="javac" description="GWT compile to JavaScript (production mode)">
        <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler" maxmemory="512m">
            <classpath>
                <pathelement location="src"/>
                <path refid="project.class.path"/>
            </classpath>
            <arg line="-war"/>
            <arg value="war"/>
            <!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
            <arg line="${gwt.args}"/>
            <arg value="com.fpliu.GWTProject"/>
        </java>
    </target>

    <target name="devmode" depends="javac" description="Run development mode (pass -Dgwt.args=-nosuperDevMode to fallback to classic DevMode)">
        <java failonerror="true" fork="true" classname="com.google.gwt.dev.DevMode" maxmemory="1g">
            <classpath>
                <pathelement location="src"/>
                <path refid="project.class.path"/>
                <pathelement location="${gwt.sdk}/gwt-codeserver.jar"/>
            </classpath>
            <arg value="-startupUrl"/>
            <arg value="GWTProject.html"/>
            <arg line="-war"/>
            <arg value="war"/>
            <!-- Additional arguments like -style PRETTY, -logLevel DEBUG or -nosuperDevMode -->
            <arg line="${gwt.args}"/>
            <arg value="com.fpliu.GWTProject"/>
            <arg value="com.fpliu.GWTProject"/>
        </java>
    </target>

    <target name="build" depends="gwtc" description="Build this project" />

    <target name="war" depends="build" description="Create a war file">
        <zip destfile="GWTProject.war" basedir="war"/>
    </target>

    <target name="clean" description="Cleans this project">
        <delete dir="war/WEB-INF/classes" failonerror="false" />
        <delete dir="war/gwtproject" failonerror="false" />
    </target>

</project>

我们可以知道,总共有7个任务(task):

  • libs
    将依赖的Servlet库放到指定的文件夹中
  • javac
    编译Java源文件到字节码
  • gwtc
    Java字节码转化为JavaScript源文件
  • devmode
    开发模式,运行服务器并启动一个GUI界面
  • build
    生产模式,只是调用gwtc任务
  • war
    生成war
  • clean
    清除编译生成的产物

我们知道,Ant任务的执行方式是:ant taskName...

下面是执行ant devmode命令出现的界面:

点击"Launch Default Browser",打开默认的浏览器,如下:

点击"Send"按钮,出现如下:

下面是执行ant gwtc命令: