`

Ant搞定全部开发流程【转】

    博客分类:
  • java
阅读更多

由于涉及到打包签名,所以在开始全部工作之前,我们先做好签名的准备工作。

那就是建立密钥库(keystore。只有建立好了密码库,才能在签名工具中顺利地实现签名。

   这里建立密钥库要用到j2SDK提供的工具keytool,我们通过命令行来运行就行了。关于这个工具的详细用法请见j2SDK官方文档的%JAVA_DOC%\tooldocs\windows\keytool.html目录下。

keytool -genkey -dname "cn=Wuxing, ou=Gdyj, o=Geoway, c=CN"   -alias geoway -keypass geoway -keystore d:\keystore   -sto

repass geoway

这个命令在D盘根目录下创建了一个名为keystore的密钥库文件。密码是geoway,它为“通用名为Wuxing,组织部门为Gdyj,组织为Geoway,国家代码为CN”实体生成了一个公有/私有的密钥对。它用默认的“DSA”密钥产生算法来创建密码,达1024位长。

注意:为了顺利地调用上述命令,请将%JAVA_HOME%\bin目录加入你的系统环境变量path中。

说明:下面的ANT配置文件build.xml中,出现中文的地方,请根据实际情况进行修改。

下面正式开始我们的ANT配置。

<!—建立工程名为Client,默认的任务是compile -->

<project name="Client" default="compile" basedir=".">

  <!—  设置全局属性  -->

  <property name="src"           value="源代目录"/>

  <property name="classes"         value="类目录"/>

  <property name="docs"         value="API文档目录"/>

   <property name="version"         value="版本号"/>

  <property name="lib" value="编译时要调用的库目录"/> 

  <property name="clientjar"         value="打包目录"/>

   <property name="profile"      value="proguard配置文件路径"/>

   <property name="proguardhome"  value=" proguard3.0.7目录"/>

<!—

  为了更进一步体现Ant强大的功能,我们把签名过程写在批处理文件中,供ANT调用.  

签名代码如下:

jarsigner -keystore d:\keystore -storepass geoway -keypass geoway -signedjar Client.jar Client_1.jar geoway

注意:得先定位目录到签名包所在目录

-->

   <property name="sign"  value="签名批处理文件路径"/>

   <property name="IALOC"  value="InstallAnywhere安装目录"/>

   <property name="INSTALLLOC"         value=" IA配置文件路径"/>

      <!—  任务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

分享到:
评论

相关推荐

    开发工具 ant-1.9.6

    开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6...

    AntDesignPro开发手册.doc

    AntDesignPro 的开发指导包括开发规范、开发流程示意图、开发实例等几个方面。开发规范包括编码风格、命名规则、注释规则等。开发流程示意图展示了从需求到交付的整个开发流程。开发实例展示了如何新建一个菜单、...

    使用Ant进行java开发

    虽然现代Java开发中,如Maven和Gradle等构建工具的流行度已经超越了Ant,但Ant由于其历史的悠久和简单易学的特点,仍然在一些项目和团队中保持着活跃地位。因此,掌握Ant对Java开发者来说,仍然是一个十分有帮助的...

    使用 Eclipse 和 Ant 进行 Python 开发

    为了优化开发流程,你还可以配置 Eclipse 的构建触发器,使得每次保存代码时自动运行 Ant 目标,例如运行测试,以实现快速反馈循环。 总的来说,结合 Eclipse 和 Ant 可以提供一个高效且高度自定义的 Python 开发...

    J2EE开发之ant开发工具

    Ant是Apache软件基金会下的一个项目,它是一款强大的Java构建工具,尤其在J2EE应用程序的开发中发挥着至关重要的作用。Ant以其XML为基础的构建文件(build.xml)为特色,使得构建过程可配置且可重复执行,从而极大地...

    ant ant ant ant

    在IT行业中,Ant是一个至关重要的工具,特别是在Java开发领域。Ant是Apache软件基金会下的一个项目,它是一个基于Java的...在软件开发的生命周期中,Ant起到了确保代码质量、简化部署流程和促进团队协作的重要作用。

    AntDesignPro开发手册

    3.2 开发流程示意图 3.3 开发实例 3.3.1 新建一个菜单 编辑菜单配置文件 src/common/menu.js,在 menuData 里添加菜单配置,数据格式为 json 格式。 3.3.2 新建一个路由配置 编辑路由配置文件 src/common/...

    ant 开发及整合 源码 实例

    Ant 的核心理念是基于XML的构建文件(通常命名为build.xml),其中定义了一系列的任务和目标,使得开发者能够以声明式的方式配置构建流程。本资源包含了"ant 开发及整合 源码 实例",是学习和理解Ant工作原理及实际...

    ANT 快速参考(OSSEZ)开发文档很详细

    ant快速参考(OSSEZ) ant开发文档 很详细很具体

    开发工具 ant-launcher-1.9.6

    开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ...

    贯通Java Web开发三剑客:Eclipse+Tomcat+Ant整合开发.part2.rar

    《贯通Java Web开发三剑客:Eclipse+Tomcat+Ant整合开发》.part2.rar

    ANT+协议 VS2015源文件

    VS2015源文件指的是使用Visual Studio 2015开发环境编写的源代码文件,这些文件可能包含了实现ANT+协议的C#编程语言代码。 ANT+协议的核心特点包括低功耗、短距离通信以及动态信道分配,使其非常适合在移动和可穿戴...

    ant开发工具

    在Java开发中,Ant以其灵活性和可扩展性而受到广泛欢迎,它使用XML来描述构建过程,允许开发者定义任务、目标和依赖关系,使得自动化编译、测试、打包等流程变得简单易行。 标题"ant开发工具"指的是Ant作为开发者...

    使用Ant进行Web开发

    使用Ant进行Web开发使用Ant进行Web开发使用Ant进行Web开发使用Ant进行Web开发使用Ant进行Web开发使用Ant进行Web开发

    Ant应用开发指南(学习ant的必备资料)

    《Ant应用开发指南》是IT领域中针对Ant构建工具的一份详尽的教程与资源,旨在帮助开发者深入了解并掌握Ant的使用方法与实践技巧。Ant,最初作为一个缩写代表“Another Neat Tool”,是一个功能强大的构建工具,尤其...

    ant-1.9.4(android开发)

    总结,Ant 1.9.4在Android开发中主要负责自动化构建流程,它的灵活性和可扩展性使其成为项目构建的重要选择。虽然目前大部分新项目都转向了Gradle,但了解并掌握Ant对于理解Android项目的构建机制和历史发展仍然很有...

    ant1.8全部jar包

    这个"ant1.8全部jar包"包含了Ant 1.8版本的所有核心库文件,这些文件对于理解和使用Ant构建系统至关重要。Ant主要用作自动化Java项目的构建工具,它可以编译源代码、运行测试、打包应用以及执行其他与构建相关的任务...

    基于vue+ant design设计的流程图

    当我们结合Vue.js与Ant Design来设计流程图时,可以构建出美观且功能强大的应用。 Vue.js是一个用于构建用户界面的渐进式框架,它的核心库专注于视图层,易于集成到现有项目中,同时也支持单文件组件(Single File ...

    基于 vue、ant-design-vue 的自定义Antdv 工作流组件

    在IT行业中,工作流系统是企业管理、自动化任务执行的关键组成部分,尤其在软件开发中,它可以帮助团队高效协作,实现业务流程的规范化。本项目“基于vue、ant-design-vue的自定义Antdv工作流组件”就是一个这样的...

    Android Ant 开发入门教程

    通过设置必要的环境变量和使用 Ant 脚本来自动化构建流程,我们可以更高效地进行 Android 应用开发。虽然现代 Android 开发通常依赖于更先进的 IDE(如 Android Studio),但了解如何使用 Ant 仍然对于深入理解构建...

Global site tag (gtag.js) - Google Analytics