Ant搞定全部开发流程【转】
由于涉及到打包签名,所以在开始全部工作之前,我们先做好签名的准备工作。
那就是建立密钥库(目录"/>
<!—
? 为了更进一步体现Ant强大的功能,我们把签名过程写在批处理文件中,供ANT调用. ?
签名代码如下:
配置文件路径"/>
????? <!—? 任务1:清空 ?-->
? <target name="clean">
? <delete failonerror="false" includeemptydirs="true">
????? <fileset dir="${classes}"/>
?? </delete>
? <delete failonerror="false" includeemptydirs="true">
? ??????<fileset dir="${clientjar}\com"/>
? ??? </delete>
?? <mkdir dir="${classes}" />
? </target>
<!—? 任务2:编译 ?-->
? <target name="compile">??
??? <javac srcdir="${src}" destdir="${classes}" debug="true"
?????????? optimize="false" deprecation="true">
????? <classpath>
?? <fileset dir="${lib}">
?? ? <include name="**/*.jar"/>
?? </fileset>
????? </classpath>??????????
??? </javac>??
? ?<copy todir="${classes}">
????? <fileset dir="${src}">
? ??? <include name="**/*.properties"/>
? ??? <include name="**/*.xml"/>
? ??? <include name="**/*.gif"/>
? ??? <include name="**/*.png"/>
?? ? </fileset>
?? </copy>?
? <!—? 任务3:将文件全局复制到打包目录 ?-->
? <copy todir="${clientjar}">
? ????? <fileset dir="${classes}">
? ??????????? <include name="**/*.*"/>
? ????? </fileset>
? ?? </copy>
? </target>
?? <!—任务4: 调用签名批处理文件 ?-->
? <target name="run">
? ?<exec executable="${sign}">
? ?</exec>
?? </target>
?? <!—任务5: 混淆
注意:要先安装Proguard,并用图形界面做好配置文件,本文附录提供了简单介绍和下载地址。
-->
<target name="obfuscate">
?? ? <taskdef resource="proguard/ant/task.properties"
?? ?????????? classpath="${proguardhome}/lib/proguard.jar" />
?? ? <proguard configuration="${profile}" />
????? <!— 混淆完成之后要进行签名 ?-->
????? <exec executable="${sign}">
????? </exec>
? </target>
<!—任务6: 用InstallAnywhere构造安装包 ?
注意:要先安装InstallAnywhere,并用其做好配置文件。
-->
??? <target name="buildInstaller">
?? ?<taskdef name="buildinstaller" classname="com.zerog.ia.integration.ant.InstallAnywhereAntTask"/>
?? <buildfullinstaller?
?? IAlocation="${IALOC}"
?? IAProjectFile="${INSTALLLOC}"
?? BuildWindowsWithVM="true"
????? OptimizeWebInstaller="true"
?? InstallerStdErrRedirect="C:\console.txt"
?? />???
??? ? </target>
?? <!—任务7: 利用Javadoc工具生成API文档 ?-->
?? <target name="docs" depends="compile">??????
??????? <delete>
?????????? <fileset dir="${docs}/api" includes="**/*.*" />
??????? </delete>????
??????? <javadoc packagenames="生成的API文档要用的源代码包名"
????????????? sourcepath="${src}"
????????????? destdir="${docs}/api"
????????????? author="true"
????????????? version="true"
????????????? use="true"
????????????? windowtitle="Geoway Client API version ${version}">
?????????? <doctitle>文档头内容,可用HTML代码</doctitle>
?????????? <bottom>文档底部内容,可用HTML代码</bottom>
?????????? <classpath>
????????????? <fileset dir="${lib}">
???????????????? <include name="**/*.jar"/>
????????????? </fileset>
????????????? <pathelement location="${classes}"/>
?????????? </classpath>
??????? </javadoc>
????? </target>
</project>
附录:Proguard简介绍及下载ProGuard是一个开源的混淆和优化工具,不但能在类内部的代码段内部对代码进行混淆,更能将类名、各种类型方法、变量进行混淆(其实如果建立的代码包不要作为库在外部调用的话,其实进行全混淆是一种很不错的选择)。
下载地址为:
?http://easynews.dl.sourceforge.net/sourceforge/proguard/proguard3.0.7.zip