使用ant+svn自动编译打包gwt程序

1. 前提条件

已经安装了JDK6.0

2. 环境准备

1)  下载gwt-windows-1.7.1;解压缩到d:/gwt目录下待用;

2)  下载svnant-1.3.0;解压缩到d:/ svnant-1.3.0目录下待用;

3)  下载apache-ant-1.8.1-bin.zip解压缩到d:/ ant-1.8.1目录下待用;

4)  d:/ svnant-1.3.0/lib下的jar包全部复制到d:/ ant-1.8.1/lib目录下

5)  设置环境变量ANT_HOME= D:/ ant-1.8.1;并将“%ANT_HOME%/bin”加入到环境变量path中;

3. 编写build.properties

svn.url=http://192.168.1.216/svn/test

local.dir=C:/SVNTest

gwt.sdk.home=D: /gwt-windows-1.7.1

gwt.sdk.dev.jar.name=gwt-dev-windows.jar

jdk.home.1.6=D:/jdk1.6.0_15

svn.username=test

svn.password=test

4. 编写build.xml

<project name="test"  default="all">

  <tstamp>

        <format property="TODAY" pattern="yyyy-MM-dd_HH_mm_ss" />

  </tstamp>

  <!-- define the svn url and the local directory to be checked out -->

       <property file="build.properties" />

       <property name="project.name" value="test" />

       <property name="module.jdk.bin.test" value="${jdk.home.1.6}/bin"/>

       <property name="project.path" value="${local.dir}/${project.name}" />

       <property name="project.classes.path" value="${project.path}/WebRoot/WEB-INF/classes" />

       <property name="project.gwt.path" value="${project.path}/WebRoot/test/gwt" />

       <property name="gwt.compiler.output.test" value="${project.path}/GWTCompilerOutputTest"/>  

       <property name="project.target.path" value="${local.dir}/target/${project.name}"/>                         

       <path id="ant.classpath">            

              <pathelement location="${ant_home}/lib/svnant.jar"/>

              <pathelement location="${ant_home}/lib/svnClientAdapter.jar"/>

              <pathelement location="${ant_home}/lib/svnjavahl.jar"/>

              <pathelement location="${ant_home}/lib/svnkit.jar"/>

              <pathelement location="${ant_home}/lib/ganymed.jar"/>

       </path>

       <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" >

              <classpath refid="ant.classpath"/>

       </taskdef>

          <!-- prepare for the checking out:clean the directory  -->          

    <target name="clean"    description="delete the dirs for the task">

             <delete dir="${project.path}" />

                  <delete dir="${project.target.path}" />

      </target>

  <target name="create_dirs" depends="clean"    description="make the dirs for the task">

             <mkdir dir="${project.path}" />   

           <mkdir dir="${project.target.path}" />      

           <mkdir dir="${project.target.path}/classes" />

           <mkdir dir="${project.gwt.path}" />   

           <mkdir dir="${project.classes.path}" />

  </target>

       <path id="project.lib.path">

        <fileset dir="${project.path}/WebRoot/WEB-INF/lib">

            <include name="**/*.jar" />

        </fileset>

   </path>

   <path id="project.src.path">

       <dirset dir="${project.path}">

          <include name="src"/>

       </dirset>

   </path>      

       <!-- check out the scource from the svn -->

     <target name="checkout" depends="create_dirs">

         <echo message="下载${project.name}源代码"/>

           <svn javahl="true" username="${svn.username}" password="${svn.password}" >

                      <checkout url="${svn.url}" destPath="${project.path}" />

        </svn>

    </target>  

       <!-- define the svn task-->

     <target name="compile-src"  description="编译${project.name}源代码">

          <echo message="编译${project.name}源代码"/>

        <javac srcdir="${project.path}/src" source="1.6"

                    destdir="${project.target.path}/classes" debug="true" encoding="UTF-8" includes="**"  failοnerrοr="false" includeantruntime="on">

                                <compilerarg value="-Xlint:unchecked"/>

                                <compilerarg value="-Xlint:deprecation"/>              

                                          <classpath>

                                                 <fileset dir="${project.target.path}/classes">

                                                        <include name="*.jar"/>

                                                 </fileset>

                                          </classpath>

                                          <classpath refid="project.lib.path"/>

                    </javac>

                 

        <copy todir="${project.classes.path}" overwrite="yes">

            <fileset dir="${project.path}/src">

                <include name="**/**" />

                <exclude name="**/*.java"/>

            </fileset>

        </copy>

         <copy todir="${project.classes.path}" overwrite="yes">

            <fileset dir="${project.target.path}/classes">

                <include name="**/**" />

            </fileset>

        </copy>

    </target>

<!-- Run GWT compiler for GWT module ${gwt.module.name} -->

  <target name="run.gwt.compiler.test" description="Run GWT compiler">

    <echo message="编译${project.name}/gwt/${gwt.module.name}模块"/>

    <java fork="true" jvm="${module.jdk.bin.test}/java" classname="com.google.gwt.dev.Compiler">

      <jvmarg line="-Xmx256m"/>

      <classpath>

        <pathelement location="${gwt.sdk.home.test}/${gwt.sdk.dev.jar.name}"/>

        <path refid="project.src.path"/>

        <path refid="project.lib.path"/>

      </classpath>

      <arg value="-logLevel"/>

      <arg value="WARN"/>

      <arg value="-war"/>

      <arg value="${gwt.compiler.output.test}"/>

      <arg value="-style"/>

      <arg value="DETAILED"/>

      <arg value="${gwt.module.name}"/>

</java>

</target>

  <target name="compile.gwt.test" depends="compile-src" description="Compile all GWT modules in module test">

    <property name="gwt.sdk.home.test" value="${gwt.sdk.home}"/>

    <antcall target="run.gwt.compiler.test">

      <param name="gwt.module.name" value="com.test.gwt.model1"/>

    </antcall>

    <antcall target="run.gwt.compiler.test">

      <param name="gwt.module.name" value=" com.test.gwt.model2"/>

    </antcall>

    <antcall target="run.gwt.compiler.test">

      <param name="gwt.module.name" value=" com.test.gwt.model3"/>

    </antcall>

    <antcall target="run.gwt.compiler.test">

      <param name="gwt.module.name" value=" com.test.gwt.model4"/>

    </antcall>

    <antcall target="run.gwt.compiler.test">

      <param name="gwt.module.name" value=" com.test.gwt.model5"/>

    </antcall>

  </target>

   <target name="copy_gwt" depends="compile.gwt.test"  description="复制gwt" >

   <copy todir="${project.gwt.path}" overwrite="yes">

              <fileset dir="${gwt.compiler.output.test}/com.test.gwt.model1"></fileset>

   </copy>

     <copy todir="${project.gwt.path}" overwrite="yes">

             <fileset dir="${gwt.compiler.output.test}/ com.test.gwt.model2"></fileset>

   </copy>

     <copy todir="${project.gwt.path}" overwrite="yes">

             <fileset dir="${gwt.compiler.output.test}/ com.test.gwt.model3"></fileset>

   </copy>

     <copy todir="${project.gwt.path}" overwrite="yes">

             <fileset dir="${gwt.compiler.output.test}/ com.test.gwt.model4 "></fileset>

   </copy>

    <copy todir="${project.gwt.path}" overwrite="yes">

             <fileset dir="${gwt.compiler.output.test}/ com.test.gwt.model5"></fileset>

   </copy>

  </target>

    <target name="war"  depends="copy_gwt" description="生成war" >

        <war destfile="${project.target.path}/${project.name}${TODAY}.war" webxml="${project.path}/WebRoot/WEB-INF/web.xml" basedir="${project.path}/WebRoot">

        </war>

        <delete file="${project.path}/WebRoot/WEB-INF/lib/${project.name}.jar" />

    </target>

    <target name="all" depends="checkout,compile-src,copy_gwt,war"/>

</project>

5. 编写批处理文件compiler.bat

cd ./

@ant

至此,已经完成整个工程的源代码下载、编译及打包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值