ANT 编译发布

      本来一直使用jubilder开发,按个F9,要什么包都有了。最近和另外一个公司和做,对方要求的较严格,需要ANT发布给测试部门进行测试。所以花了一个晚上研究ANT。

    就简单使用来说,还是比较简单的。主要需要两个文件:

    1.build.bat   配置java_home 和 调用ANT,内容如下:

       @echo off
       set JAVA_HOME=C:/j2sdk1.4.2_04
       set ANT_HOME=D:/work/ANT
       call D:/work/ANT/bin/ant %1 %2 %3

    2.build.xml ANT 配置文件

<?xml version='1.0' encoding='GBK' standalone='yes'?>
<project name="WebTest_project" default="WebTest_package_war">

<!-- name 就不用解释了吧  default 需要配置为最后一个target,或者想要执行的最后一个任务

  ANT 是通过依赖关系,来决定target执行的顺序的。-->


 <property file="build.properties"/>

<!-- ANT 可以通过properties 定义环境变量,当然,你也可以直接在这里定义,格式如下

WebTest.dest       = WebTest_desc

-->

 


 <target name="init">
  <echo message="~~~~开始执行ant任务~~~~"/>
 </target>

  <target name="cleardir" depends="init">
              <echo message="1 删除目录"/>
  <delete dir="${WebTest.build}"/>
  <delete dir="${WebTest.dest}"/>
  <delete dir="${WebTest.web}/WEB-INF/classes"/>
  <delete dir="${WebTest.web}/WEB-INF/lib"/>
  </target>

  <target name="makedir1" depends="cleardir">
  <echo message="2 创建目录!"/>
    <mkdir dir="${WebTest.build}"/>
  <mkdir dir="${WebTest.dest}"/>
  <mkdir dir="${WebTest.web}/WEB-INF/classes"/>
  <mkdir dir="${WebTest.web}/WEB-INF/lib"/>
 </target>

<!--引用第二个xml定义文件   depends 为依赖的上一个target -->
 <target name="WebTest_build_src" depends="makedir1">
  <echo message="一 编译所有的源文件!"/>
  <ant dir="." antfile="build_WebTest_src.xml"/>
 </target>

<!--将Web路径打包为war,包中包括web页面、

WEB-INF下的

   *.xml,

   lib/*.jar

   classes/*.*

-->
  <target name="WebTest_package_war" depends="WebTest_build_src">
  <echo message="二 打war包!"/>
     <echo message="1 打war包!"/>
    <jar jarfile="${WebTest.dest}/ssip.war">
       <fileset dir="${WebTest.web}">
          <!--<include name="**/*.*"/>-->
      </fileset>
    </jar>
  </target>

</project>

 --------------------------------------------------------------------------------------------------------------------------

   3. build_WebTest_src.xml

<?xml version='1.0' encoding='GBK' standalone='yes'?>
<project name="WebTest_src" default="copylib" basedir=".">
  <property file="build.properties"/>
  <property name="cc.code" value="${WebTest.code}"/>
  <property name="cc.src" value="${cc.code}/src"/>
  <property name="cc.lib" value="${cc.code}/lib"/>
  <property name="cc.web" value="${WebTest.web}"/>
  <property name="cc.build" value="${WebTest.build}"/>

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

    <pathelement location="${cc.lib}/classes12.jar"/>
    <pathelement location="${cc.lib}/ehcache-0.7.jar"/>
    <pathelement location="${cc.lib}/aiismg.jar"/>

<!-----------你应用中使用的所有的jar------------------------------------>


    <pathelement location="${cc.lib}/xml-apis.jar"/>
    <pathelement location="${cc.lib}/xmlParserAPIs.jar"/>
  </path>

<!--编译java源文件

  <javac 属性  classpathref 引用上面定义的第三方类

   bootclasspathref 编译器启动引用类,如果设置了JAVA_HOME,就不需要使用该参数了

   按照jbuilder的风格,编译后先放在classes中,然后copy到web路径下的WEB-INF/classes下

 

-->


  <target name="compile">
    <echo message="1 编译源文件!"/>
    <javac encoding="GBK"  classpathref="project.class.path"   
    debug="false" deprecation="false" srcdir="${cc.src}" destdir="${WebTest.build}" >
    <src path="${cc.src}"/>
    <include name="com/utlity/**/*.java"/>
    <include name="com/data/**/**/*.java"/>
    </javac>
  </target>

  <target name="copyclasses" depends="compile">
    <echo message="2 拷贝编译结果到Web路径"/>
    <copy todir="${WebTest.build}">
      <fileset dir="${cc.src}" >
        <include name="*.xml"/>
        <include name="*.properties"/>
        <include name="*.ini"/>
      </fileset>
    </copy>
    <copy todir="${cc.web}/WEB-INF/classes">
      <fileset dir="${cc.build}" >
      </fileset>
    </copy>
  </target>

  <target name="copylib" depends="copyclasses">
    <echo message="2 拷贝第三方类库到Web路径"/>
    <copy todir="${cc.web}/WEB-INF/lib">
      <fileset dir="${cc.lib}" >
        <include name="*.jar"/>
      </fileset>
    </copy>
  </target>
</project>

 

-----目前没有编译jsp,待续--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值