<?xml version="1.0" encoding="gbk"?>
<project name="automake" default="end" basedir=".">
<property file="conf.properties"/>
<property name="src.dir" value="${basedir}\src"/>
<property name="res.dir" value="${basedir}\res"/>
<property name="build.dir" value="${basedir}\build"/>
<property name="deploy.dir" value="${basedir}\deploy"/>
<property name="package.dir" value="${basedir}\package"/>
<property name="package.extract.dir" value="${package.dir}\extract"/>
<property name="preverified.dir" value="${basedir}\preverified"/>
<property name="preverified.noobfusedclass.dir" value="${preverified.dir}\noobfused\classes"/>
<property name="preverified.obfusedclass.dir" value="${preverified.dir}\obfused\classes"/>
<property name="preverify.bin" value="${wtk.home.dir}\bin\preverify.exe"/>
<property name="emulator.bin" value="${wtk.home.dir}\bin\emulator.exe"/>
<property name="proguard.lib.dir" value="${basedir}\lib"/>
<property name="jad.file" value="${programname}.jad"/>
<target name="init" description="初始化环境">
<echo message="初始化目录"/>
<delete dir="${build.dir}"/>
<delete dir="${deploy.dir}"/>
<delete dir="${package.dir}"/>
<delete dir="${preverified.dir}"/>
<mkdir dir="${build.dir}"/>
<mkdir dir="${deploy.dir}"/>
<mkdir dir="${package.dir}"/>
<mkdir dir="${package.extract.dir}"/>
<mkdir dir="${preverified.dir}"/>
<mkdir dir="${preverified.noobfusedclass.dir}"/>
<mkdir dir="${preverified.obfusedclass.dir}"/>
</target>
<target name="complie" depends="init" description="编译">
<echo message="编译程序"/>
<javac srcdir="${src.dir}" destdir="${build.dir}">
<bootclasspath path="${midp.lib.dir}"/>
<classpath>
<fileset dir="${midp.lib.dir}" includes="*.jar"/>
</classpath>
</javac>
</target>
<target name="verifyfornoobfuscate" description="验证j2me的class,将验证后的class输出到${preverified.noobfusedclass.dir}">
<echo message="验证生成的class,将验证后的class输出到${preverified.noobfusedclass.dir}"/>
<exec executable="${preverify.bin}" searchpath="false">
<arg line="-classpath ${midp.lib.path}"/>
<arg line="-d ${preverified.noobfusedclass.dir}"/>
<arg line="${build.dir}"/>
</exec>
</target>
<target name="genmanifest" description="根据模板属性文件的值生成manifest文件">
<echo message="根据模板属性文件的值生成manifest文件"/>
<!--
使用${programname}替换掉属性文件gen.properties中的@programname@
-->
<replace file="gen.properties"
token="@programname@"
value="${programname}"
/>
<!--
使用gen.properties文件中的属性值替换掉模板文件manifest.tmp中的对应属性值,
将替换后的数据复制到${src.dir}\manifest.mf
-->
<copy file="manifest.tmp"
tofile="${src.dir}\manifest.mf">
<filterset begintoken="@" endtoken="@">
<filtersfile file="gen.properties"/>
</filterset>
</copy>
</target>
<target name="package" description="将class打包,输出到${package.dir}">
<echo message="将class打包,输出到${package.dir}"/>
<jar basedir="${preverified.noobfusedclass.dir}"
jarfile="${package.dir}\${programname}-noobfused.jar"
manifest="${src.dir}\manifest.mf"
>
<fileset dir="${res.dir}" includes="**/*.png"/>
</jar>
</target>
<target name="obfuscate" description="对打包后的jar文件进行混淆,然后解压缩至${package.extract.dir}">
<echo message="对打包后的jar文件进行混淆,然后解压缩至${package.extract.dir}"/>
<java fork="true" classname="proguard.proguard">
<classpath path="${proguard.lib.dir}\proguard.jar"/>
<arg line="-libraryjars ${midp.lib.path}"/>
<arg line="-injar ${package.dir}\${programname}-noobfused.jar"/>
<arg line="-outjar ${package.dir}\${programname}-obfused.jar"/>
<!--保留midlet的类声明不被混淆-->
<arg line="-keep 'public class * extends javax.microedition.midlet.midlet'"/>
<!--打印被保留的类名-->
<arg line="-printseeds"/>
</java>
<unjar src="${package.dir}\${programname}-obfused.jar"
dest="${package.extract.dir}"
/>
</target>
<target name="verifyforobfuscate" description="验证被混淆的class,输出到${preverified.obfusedclass.dir}">
<echo message="验证被混淆的class,输出到${preverified.obfusedclass.dir}"/>
<exec executable="${preverify.bin}" searchpath="false">
<arg line="-classpath ${midp.lib.path}"/>
<arg line="-d ${preverified.obfusedclass.dir}"/>
<arg line="${package.extract.dir}"/>
</exec>
<copy todir="${preverified.obfusedclass.dir}">
<fileset dir="${package.extract.dir}" includes="**/*.png"/>
</copy>
</target>
<target name="deploy" description="将经过验证的混淆后的class打包,部署在delpoy目录">
<echo message="将经过验证的混淆后的class打包,部署在${deploy.dir}目录"/>
<jar basedir="${preverified.obfusedclass.dir}"
jarfile="${deploy.dir}\${programname}.jar"
manifest="${src.dir}\manifest.mf"
>
<fileset dir="${preverified.obfusedclass.dir}" includes="**/*.class;*.png"/>
</jar>
</target>
<target name="genjad" description="在${deploy.dir}目录生成jad文件">
<echo message="在${deploy.dir}目录生成jad文件"/>
<length file="${deploy.dir}\${programname}.jar" property="jarsize"/>
<echo message="获得jar文件长度:${jarsize}"/>
<replace file="gen.properties"
token="@jarsize@"
value="${jarsize}"
/>
<replace file="gen.properties"
token="@programname@"
value="${programname}"
/>
<copy file="jad.tmp" tofile="${deploy.dir}\${programname}.jad">
<filterset begintoken="@" endtoken="@">
<filtersfile file="gen.properties"/>
</filterset>
</copy>
</target>
<target name="recoverygenproperties" description="恢复被修改的gen.properties">
<echo message="恢复被修改的gen.properties"/>
<replace file="gen.properties"
token="midlet_name=${programname}"
value="midlet_name=@programname@"
/>
<replace file="gen.properties"
token="midlet_jar_url=${programname}.jar"
value="midlet_jar_url=@programname@.jar"
/>
<replace file="gen.properties"
token="midlet_jar_size=${jarsize}"
value="midlet_jar_size=@jarsize@"
/>
</target>
<target name="run" description="在模拟器中运行">
<echo message="在模拟器中运行..."/>
<exec executable="${emulator.bin}" searchpath="false">
<arg line="-classpath ${deploy.dir}\${programname}.jar;${wtk.lib.path}"/>
<arg line="-xdescriptor:${deploy.dir}\${jad.file}"/>
</exec>
</target>
<target name="end" depends="complie,verifyfornoobfuscate,genmanifest,package,obfuscate,verifyforobfuscate,deploy,genjad,recoverygenproperties,run"/>
</project>
wtk.home.dir=e:\\wtk22
programname=j2mepractice
midp.lib.dir=${wtk.home.dir}\\lib
midp.lib.path=${midp.lib.dir}\\cldcapi11.jar;${midp.lib.dir}\\midpapi20.jar
midlet_name=@programname@
midlet_version=1.0.0
midlet_vendor=kevin
midlet_01_name=mainmidlet
midlet_01_logo=
midlet_01_class=com.gamecollege.work.menu.mainmidlet
midlet_jar_url=@programname@.jar
midlet_jar_size=@jarsize@
me_profile=midp-2.0
me_conf=cldc-1.1
midlet-name: @midlet_name@
midlet-version: @midlet_version@
midlet-vendor: @midlet_vendor@
midlet-1: @midlet_01_name@,@midlet_01_logo@,@midlet_01_class@
microedition-profile: @me_profile@
microedition-configuration: @me_conf@
midlet-name: @midlet_name@
midlet-version: @midlet_version@
midlet-vendor: @midlet_vendor@
midlet-jar-url: @midlet_jar_url@
midlet-jar-size: @midlet_jar_size@
midlet-1: @midlet_01_name@,@midlet_01_logo@,@midlet_01_class@
microedition-profile: @me_profile@
microedition-configuration: @me_conf@
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器