返回介绍

小李的 Build 之路(上)

发布于 2025-01-22 00:38:48 字数 2814 浏览 0 评论 0 收藏 0

手工 Build 的烦恼 要不是为了和女朋友留在一个城市,小李肯定去北上广奋斗去了。

现在他只能留在这个 2.5 线城市,进入这家软件开发公司,7,8 个人,10 来条枪,是个典型的软件小作坊。

上班第一天,CTO 兼架构师兼项目经理兼开发组长老张把小李叫去,谆谆教导说:

“小李啊,我看了你的简历,我对你在公司的发展还是挺看好的,不过作为新人,你对新业务还不熟悉,没法开发核心系统,这段时间,你要一边学习,一边帮着项目做个很重要的工作:Build“

小李心说你还给我拽英语啊, 虽然心里这么想, 小李还是不动声色,面带微笑的问:

“这 Build 是什么东西?”

老张说:“我非常忙, 没时间给你解释,这儿有个文档,你看看就知道了”

说着,老张甩给了他几张纸 ,补充到: “有问题问小王, 他比你早来一个月,做 Build 已经很熟了”

小李仔细看了一遍,上面写着:

XXX 公司 Build 流程 (测试环境) (1) 设置 Eclipse 工作区, 编码为 UTF-8, java 编译级别为 JDK 1.7

(2) 从 SVN 下载最新源代码到 Eclipse 工作区

(3) 确保 Eclispe 工作区没有编译错误

(4) 手工修改下面 20 个 配置文件 database.properties cache.properties user.properties 。。。。。。 (5) 把 Eclipse 中的 Web 项目导出成 War 包 小王还特别在这里用红色的笔加了标注: Web 项目所依赖的其他 java 项目也会被自动包含到 War 包的 WEB-INF/lib 目录下

(6) 上传到测试服务器,安装

(7) 做冒烟测试

小李笑了:这不就是一个编译,打包,部署,测试的流程吗? 还 Build !

正在这时,开发骨干小梁叫小李了:“小李, 我改了几个 Bug,马上要测试,赶紧给我做一个测试环境的 Build”

小李不敢怠慢,立刻按照文档做了一遍,花了将近半个小时才折腾完。

可是到了最后一步,做冒烟测试的时候, 系统却启动不了了 !

小李查了好久才发现,原来测试环境的 JDK 是 1.6 , 但是 Build 文档上写的是 1.7 当然跑不起来了。

小李暗暗的骂前任小王: 你小子肯定知道这里有个坑, 怎么不在文档上标注出来?

赶紧做个新的 Build 放到测试环境, 这次冒烟测试顺利通过了。

刚松了口气, 测试小赵就叫了起来: “小梁, 你那个 Bug 没有修复啊”

开发骨干小梁本能的反应到: “这不可能! 我的代码本地都测试过了, 代码也提交了“

小梁接着把矛头就指向小李: “哎对了小李,你的 Build 是不是又搞错了。”

小李心头一惊 , 赶紧去查,果然,在第 4 步,手工修改配置文件的时候把数据库改错了 ,指向了开发库,而不是测试库。

赶紧改吧, 原来做 Build 的小王也跑过来凑热闹, 在前 Build 专员小王,开发小梁和测试小赵三双眼睛的严厉注目下, 小李头上都要冒汗了。

还好,第三次终于成功了。 所有的测试都顺利通过。

(实际上,小李在紧张的忙碌中也忘了去更新那个文档,把 JDK 改成 1.6)

就这样过了一周, 小李每天都得战战兢兢的做四五个 Build, 虽然做的越来越熟,出错越来越少, 但是每天还是占用了不少时间。

大好年华就要在 Build 中蹉跎了吗, 坚决不行。 自动化 Build 小李决定把这个手工的、费事的、容易出错的 Build 给自动化起来, 将来谁要是做测试环境的 Build,只要运行一个命令即可。

用什么语言来实现呢? 当然是 Java 大法好 ! 小李在大学修炼了那么久,自认为对 OO,设计模式已经炉火纯青了, 现在终于有了用武之地。

小李白天工作, 晚上回到住处就开发这个自动化的 Build, 每天干到 12 点才罢休。

但是小李不觉得累, 每天都恋恋不舍的去上床睡觉, 因为创造一个新工具,造福大家的想法一直激励着自己,有时候甚至觉得很快乐。

一个月后, 自动化工具新鲜出炉, 这其实是一套 Java 的 API, 小李把它称为 BuildTool V1.0 专门用于下载源码,编译,打包,部署,测试。 例如,如果你想编译 java 代码, 可以这么写: 果然是清爽多了! 和原来的 Java 程序比起来, 这段 XML 几乎就是自解释的 !

XML 可扩展性极强, 可以任意自定义标签诸如<javac> <srcDir> <classpath> 用它来描述 Build 的逻辑。

但是唯一不爽的地方就是: XML 无法像 Java 程序那样运行, 只是纯文本而已。

不过这也无妨,只要用 Java 写一个解析器,用来解析这些 XML 文件然后在 Java 中执行就可以了。有了 BuildTool V1.0 作为基础, 写一个解析器不是什么难事, 很快 BuildTool V2.0 就新鲜出炉了。

小李不再帮其他项目组去写 Build 程序,因为用 XML 描述以后,大家很快就能学会,并且乐在其中。 CTO 老张看到这个工具,大为赞赏, 它给小李说: “别叫什么 Build Tool, 太俗, 别人听了一点感觉都没有, 我给你起个名,叫 ANT

"ANT? " 小李似乎看到很多小蚂蚁在不辞劳苦帮着做 Build, 心里暗暗佩服老张: 这个名字起的太好了, 姜还是老的辣啊。

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

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

发布评论

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