android编译打包(用ant脚本打包)

为了可以实现自动化打包,下面我介绍一下如何用ant工具来打包android项目:

直接上build.xml文件源码:

<?xml version="1.0"?>
<project name="WebGame" default="makeSuperJar" basedir=".">
    <property name="project.name" value="development"></property>
    <property name="build.dir" value="${basedir}/build"></property>
    <property name="classes" value="${basedir}/build/classes"/>
    <property name="dest" value="${basedir}/dest"/>
    <property name="src.dir" value="${basedir}"></property>
    <property name="assets" value="${basedir}/assets"></property>
    <property name="libs.dir" value="${basedir}/libs"></property>
    <property name="other.libs.dir" value="${basedir}/otherLibs"></property>
    
    <path id="project.libs.jar">
        <fileset dir="${basedir}/libs">
            <include name="**/*.jar"/>
        </fileset>
        <fileset dir="${basedir}/otherLibs">
            <include name="android.jar"/>
        </fileset>
    </path>
    
    <target name="compiler" depends="version, clean, mkdir" description="编译所有java文件">
        <echo message="开始编译所有java文件..."/>
        <javac destdir="${classes}" source="1.6" includeantruntime="false" encoding="UTF-8" debug="on">
            <src path="${src.dir}"></src>
            <classpath refid="project.libs.jar"></classpath>
        </javac>
        
        <copy todir="${classes}">
            <fileset dir="${src.dir}/src">
                <include name="**/*.txt"/>
                <include name="**/*.xml"/>
                <include name="**/*.handlers" />
                <include name="**/*.schemas" />
                <include name="**/*.xsd"/>
            </fileset>
        </copy>
        <copy todir="${classes}/assets">
            <fileset dir="${assets}">
                <include name="**/*.apk"/>
                <include name="**/*.txt"/>
                <include name="**/*.xml"/>
                <include name="**/*.handlers" />
                <include name="**/*.schemas" />
                <include name="**/*.xsd"/>
                <include name="**/*.html"/>
                <include name="**/*"/>
            </fileset>
        </copy>
        <echo message="编译所有java文件成功!"/>
    </target>    
    
    <target name="jar" depends="compiler" description="将class文件打成jar包">
        <echo message="开始打jar包..."/>
        <jar destfile="${dest}/${project.name}.jar">
            <fileset dir="${classes}">
                <exclude name="**/*.bak"/>
                <exclude name="**/*.tmp"/>
            </fileset>
        </jar>
        <echo message="打jar包成功!"/>
    </target>
    
    <target name="mkdir">
        <echo message="创建需要的文件夹..."/>
        <mkdir dir="${classes}"/>
        <mkdir dir="${dest}"/>
        <echo message="创建需要的文件夹成功!"/>
    </target>
    
    <target name="clean" description="初始化,并清除所有文件">
        <echo message="初始化,并清除所有文件..."/>
        <delete dir="${basedir}/build"></delete>
        <delete dir="${dest}"></delete>
        <echo message="初始化,并清除所有文件成功!"/>
    </target>
    
    <target name="version" description="" if="ant.java.version">
        <echo message="开始检查编译环境"/>
        <echo message="编译环境: java ${ant.java.version} ..."/>
        <echo message="检查编译环境成功!"/>
    </target>
    
    <target name="proguard" depends="jar"> 
        <echo message="开始混淆jar包..."/>
        <taskdef resource="proguard/ant/task.properties" classpath="${other.libs.dir}/proguard.jar" /> 
        <proguard configuration="${src.dir}/sdk.pro" /> 
        <echo message="混淆jar包成功!"/>
    </target>
    
    <target name="makeSuperJar"  depends="proguard"  description="description">  
        <echo message="开始合并所有jar包"/>
        <jar destfile="${dest}/kkkWebGameAll.jar">  
        <zipfileset src="${libs.dir}/alipay_msp.jar"/>   
        <zipfileset src="${libs.dir}/android-support-v4.jar"/>   
        <zipfileset src="${libs.dir}/kkkwanMobileLog.jar"/>   
        <zipfileset src="${libs.dir}/MobileProbe.jar"/>   
        <zipfileset src="${libs.dir}/TenpayServiceSDK_V5.0.jar"/>   
        <zipfileset src="${libs.dir}/UPPayAssistEx.jar"/>   
        <zipfileset src="${libs.dir}/UPPayPluginEx.jar"/>   
        <zipfileset src="${dest}/kkkwanWebGame.jar"/>   
        </jar>  
        <echo message="合并所有jar包成功!"/>
    </target>  
</project>

参考以上代码,然后适当修改成自己想需要的,就可以运行ant自动打包了!

posted @ 2014-03-27 16:15  mhx_pyw  阅读(293)  评论(0编辑  收藏  举报