如何编写Build对文件手机软件的编译--使用antenna和ant

来源:互联网 发布:淘宝客服端 编辑:程序博客网 时间:2024/05/17 13:39

要使用antenna,结合ant进行编译,首先必须保证ant下有antenna的jar包,并保证在环境变量CLASSPATH下,一般apache-ant下都自动带有antenna的jar包,请注意版本,我使用的antenna是V1.2的,而apache自动带的是V1.1的。

 

build.xml文件的内容如下:

<?xml version="1.0" encoding="GBK" ?> 

<project name="wireless" default="build" basedir="."> 
  
    <property name="wtk.home" value="D:/Program Files/WTK2.5.2_01"/>
    <property name="java.home" value="D:/Program Files/Java/jdk1.6.0_10"/>
 <property name="jre.home" value="${java.home}"/>
 <property name="j2me.home" value="D:/Program Files/Java_ME_platform_SDK_3.0"/>
 <property name="ant.home" value="D:/Program Files/apache-ant-1.7.0"/>
    <property name="wtk.lib.dir" value="${wtk.home}/lib" />

    <property name="build.dir" value="${basedir}/build" />
 
    <property name="src.dir" value="${basedir}/src" /> 
    
    <property name="res.dir" value="${basedir}/res" /> 
    <property name="classes.dir" value="${build.dir}/classes" /> 
    <property name="dest.dir" value="${build.dir}/temp" />
    <property name="midlet.name" value="iRead_tcl"/>
    <property name="midlet.home" value="."/>
    <property name="wtk.cldc.version" value="1.0"/>
 <property name="wtk.midp.version" value="2.0"/>
 <property name="bootclasspath" value="${wtk.home}/lib/midpapi20.jar;${wtk.home}/lib/cldcapi11.jar;${wtk.home}/lib/wma20.jar"/>
 
 
   
     <property name="wtk.midpapi" value="${wtk.home}/lib/midpapi20.jar;${wtk.home}/lib/cldcapi11.jar;
    ${wtk.home}/lib/wma20.jar;${wtk.home}/lib/mmapi.jar;
    ${wtk.home}/lib/j2me-ws.jar;${wtk.home}/lib/jsr75.jar;
    ${wtk.home}/lib/jsr082.jar;${wtk.home}/lib/jsr184.jar"/>


    <taskdef resource="antenna.properties"/>      
    <taskdef name="wtkjad" classname="de.pleumann.antenna.WtkJad"/>
    <taskdef name="wtkbuild" classname="de.pleumann.antenna.WtkBuild"/>
    <taskdef name="wtkpackage" classname="de.pleumann.antenna.WtkPackage"/>
    <taskdef name="wtkmakeprc" classname="de.pleumann.antenna.WtkMakePrc"/>
    <taskdef name="wtkrun" classname="de.pleumann.antenna.WtkRun"/>
    <taskdef name="wtkpreverify" classname="de.pleumann.antenna.WtkPreverify"/>
    <taskdef name="wtkobfuscate" classname="de.pleumann.antenna.WtkObfuscate"/>

 


    <path id="classpath"> 
 
  <fileset dir="${ant.home}/lib">
   <include name="antenna-bin.jar" />
  </fileset>
 
    <fileset dir="${wtk.home}/lib">
   <include name="midpapi20.jar" />
   <include name="cldcapi11.jar" />
   <include name="wma20.jar" />
  </fileset>
  <fileset dir="${wtk.home}/bin">
   <include name="proguard.jar" />
  </fileset>
  <fileset dir="${java.home}/lib">
   <include name="*.*" />
   <include name="tools.jar" />
   <include name="dt.jar" />

  </fileset>
  <fileset dir="${jre.home}/lib">
   <include name="rt.jar" />
  </fileset>

  
 </path> 

    <target name="build" depends="clean" >  
         <mkdir dir="${classes.dir}" />
  <wtkjad jadfile="${midlet.name}.jad"
           
            jarfile ="iRead_tcl.jar"
            name="iRead"
            vendor="booker"
            version="1.49.41"
            manifest="MANIFEST.MF">
           
        
       
            <attribute name="MIDlet-1"
         value="iRead_tcl,/icon.png,com.company.Main"/>  
           <attribute name="Manifest-Version" value="1.0"/>

         <attribute name="MIDlet-Vendor"
         value="booker"/>        
         <attribute name="MIDlet-Version" value="1.49.43"/>

         <attribute name="MIDlet-Name" value="iRead."/>


      </wtkjad>


   <wtkbuild srcdir="${src.dir}"
             destdir="${classes.dir}" 
             preverify="false"
             bootclasspath="${bootclasspath}">
             <classpath refid="classpath"/>
      </wtkbuild>
     
      <wtkpackage jarfile="${midlet.name}.jar"
                     jadfile="${midlet.name}.jad"
                     obfuscate="true"
                     preverify="true"
                     autoversion="true">

            <fileset dir="${classes.dir}"/>
            <fileset dir="${res.dir}"/>
                
    </wtkpackage>
    #说明:package中,通过设置obfuscate和preverify要求进行自动验证和混淆,当然也可以设置成FALSE,在package完了之后再单独进行验证和混淆

#要进行混淆,必须下载proguard.jar放到wtk.home/bin目录下。混淆的目的是为了防止反编译。

 # <wtkpreverify ...............>

 # <wtkobfuscate ..............>
  

    </target>

    <target name="clean" > 
        <delete dir="${build.dir}" /> 
        <delete dir="${basedir}/.settings" /> 
        <!--delete dir="${src.dir}" /--> 
        <delete dir="${basedir}/bin" /> 
        <echo level="info">ok</echo> 
    </target> 
    </project>

 

 

 

 

 

原创粉丝点击