返回介绍

8.4 自动打包

发布于 2024-08-17 23:46:12 字数 3522 浏览 0 评论 0 收藏 0

如何判断一个公司的无线App技术水平是作坊式开发,还是企业级开发?其中很重要的一个指标就是App是否支持自动打包。

对于只有几个人的软件作坊,往往是测试人员找开发人员用Eclipse打一个包,安装在测试机上,然后进行测试。这种手动打包的方式问题很多,经常发生测试人员发现新包有问题,然后又去找开发人员检查问题,重新打包。这样往返几次,极大地浪费了开发人员和测试人员的时间。

新包有问题一般是因为:开发人员没有获取最新的代码就进行打包工作了,于是其他人提交的代码和功能不在这个包中。另一方面,如果有人提交了不能编译的代码,会导致其他开发人员更新代码后不能编译调试。

想解决这些问题,只能引入自动打包机制,大致的思路是:

1)我们需要有一台打包服务器,它能从代码服务器自动获取最新的代码、编译、打包,发邮件通知团队成员打包结果。

2)提供一个大家都可以访问的Web页面,为不同项目建立不同的打包机制。要同时提供自动和手动两种触发打包的方式。

自动打包,也就是Daily Build,每天设定一个时间,一般是深夜大家都下班的时间。自动打包可以确保如果打包失败,会发邮件通知,第二天上班,会有人立刻修复导致编译不通过的bug。

手动打包,为测试人员提供一个“打包”按钮,这样他们就可以根据需要随时打包,比如开发人员提交代码修复了一个bug,测试人员要验证这个bug,就在上述的Web页面上点击“打包”按钮就可以了。

3)在这台测试服务器上部署Web服务器,可以浏览每天打出的安装包清单,从而可以直接下载任意安装包并安装到测试机上。

基于此,我们选用CCNET这个工具。CCNET提供手动打包的按钮,以及自动打包的设置。CCNET来驱动Ant执行打包脚本进行打包工作。因为CCNET仅支持在Windows环境安装,所以我们选用Windows 2003作为我们的打包服务器。同时,我们在这台服务器上安装IIS,使包的存放地址可以通过http进行访问。当然,你也可以选用别的服务,比如Tomcat。

接下来我将详细介绍怎样组装这些技术和工具,搭建出我们想要的自动化打包机制。

8.4.1 安装和配置各种软件

安装步骤如下:

1)在服务器上安装Java SDK。注意,请安装1.6.0版本的jdk,1.7版本的打包时会有问题。

2)在服务器上安装Ant,版本为1.9.2。注意,请安装带有antcontrib扩展的Ant,它提供了for和if语句,能帮我们做更多的事情。

定义3个全局变量,末尾记得加分号,如表8-2所示。

表8-2 定义一些全局变量

3)在服务器上安装Android SDK,我的demo是基于sdk-19的,大家可以根据自己的sdk版本配置自己的安装包。

4)在服务器上安装IIS。

5)在服务器上安装.NET Framework 3.5或以上版本。

6)到CCNET官方网站下载CCNET的最新版本,目前为1.8.5。

定义1个全局变量,末尾记得加分号,如表8-3所示。

表8-3 定义一些全局变量

注意,在安装CCNET之前,请确保已经安装了IIS。

8.4.2 准备Ant打包脚本

我们仍然使用上一节介绍的daily.xml脚本,它将生成两个包,正式包和Monkey包。如果大家还想生成其他的包,只需要配置dailybuild.xml脚本即可,在打包前使用正则表达式修改某个文件的值。

因为CCNET目前不支持直接执行Ant脚本,所以我们要额外编写一个bat脚本,由CCNET通过执行bat文件来间接执行Ant脚本dailybuild.xml。

这个bat脚本的内容如下,我们将其命名为dailybuild_1.1.0.bat:

dailybuild_1.1.0.bat:



ant -file C:\Source\ProjectForAntBuild_1.1.0\dailybuild.xml
-D app.source.path="C:\Source\ProjectForAntBuild_1.1.0"

8.4.3 配置CCNET

CCNET的关键就在ccnet.config这个配置文件上,它位于以下目录中:

C:\Program Files\CruiseControl.NET\server

我们使用CCNET主要做3件事情:

·根据SVN地址获取相应的代码。

·执行打包脚本。

·发邮件通知,定制成功和失败两种情况下的邮件格式。

8.4.4 搭建IIS站点下载apk包

执行CCNET每日自动打包,日积月累,在存放打包文件的目录下将存在大量的子目录,如图8-3所示。

图8-3 ProjectForAntBuild目录下的子目录

我们需要提供一个内部的Web站点,指向ProjectForAntBuild这个目录,从而公司内部的所有同事随时都可以下载apk进行测试。

提示  配置CCNET和IIS

原本写了8页来介绍如何配置CCNET和IIS,后来发现这与本书主题不符,于是就把这部分内容上传到我的博客空间,请访问以下地址下载这份配置文档:

http://files.cnblogs.com/files/Jax/config.zip

8.4.5 自动打包流程小结

至此,一套自动打包的流程机制全都介绍完毕。最后补充一下,如果过渡到下一次迭代,版本从1.1.0变为1.2.0,我们又要在自动打包中做哪些工作呢?

1)在C:\ProjectForAntBuild\bat目录下,新建一个dailybuild_1.2.0.bat文件,内容与dailybuild_1.1.0.bat类似,只是要修改传递到Ant脚本的参数,如图8-4所示。

图8-4 在bat目录下新建一个dailybuild_1.2.0.bat文件

2)修改源代码中AndroidManifest.xml文件中的版本号。

3)修改ccnet.config文件,在里面新增一个project,可以复制一份1.1.0版本的project节点内容,但是其中的1.1.0要全都改为1.2.0。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文