近期总结
最近觉得还是把工作中的事情稍微记录一点,毕竟已经本科毕业好几个月了,也该记录点啥,凭着自娱自乐的精神还可以给以后的自己增加点小料。或许一年之后会想,这loser,当时怎么这么挫。。。
俗话说的好,吐吐更健康。最近在忙啥呢,搞了好几天的打包脚本,简直是被搞的不要不要的了。windows系统就是一个坑。说起这个打包平台还是我很久以前搭建的。
大体背景是:项目变得有点大,PM,QA要测试个包,天天像催债似的。因此搭建这套CI应运而生。
大体流程是:RD提交代码到SVN代码仓库,jenkins上创建一个poll scm计划任务,每隔5分钟扫描一次.当发现有更新的时候就去update一次代码,然后触发构建脚本,构建脚本会编译打包项目。成功后会将apk上传到一个取包的服务器,QA、PM就可以通过取包服务器的网站获取自己的包,如果要是构建不成功的话则会email到rd,好吧,其实主要就是通知我,告诉我悲催的job构建失败了,该去修了。整套系统还是蛮有意思的,琢磨着闲暇来的时候弄个专题和大家分享一下,名字我就想好了,就叫从Ant到gradle自动化集成。。。
ok,这个不是今天的猪脚,今天就想吐吐槽,身心舒服点。好吧,先从哪里开始呢,恩,就从这个打包机器的。这台打包机器是windows的,是的,windows,4G运存,100G机械硬盘,简直坑爹。构建一个job得花20分钟,简直都给跪了。大上个星期我还SB似的想把它搞到一个连root权限都没有的开发机上,花了一天一夜把sdk上传上去了,发现,Apache由于没有root权限根本就跑不起来,另外,端口号权限也没有,当时就觉得太扯淡了。。。在windows下跑程序,只能说,跪了。想当初我把取包的平台也搭建在windows上,不过那个更挫,是windows XP。结果弄好后发现取的包不能用,后面用md5比对了一下,不一样。。。我觉得是在接收的时候,在后面加了几个字符,结果就挂掉了。
当时的那个构建脚本是ANT,其实我觉得ant还是满灵活的,在引入jar那块肯定比不上maven和gradle。这几天的任务就是将ant迁移到gradle。本身的构建还好,主要就是怎么迁移ant中的那些自定义的任务,看了两天的Groovy和Gradle,就开始着手写。Groovy还是挺不错的,本身也兼容java,于是乎可以看到在gradle头部上有一坨的import。正巧这时候我们的项目dex 方法数又爆棚了,以前开机jumbMode模式可以解决,但是这次看来已经到头了。但是还是不知道当时用jumbMode怎么可以,可能是jumbModel是用来解决内存的那块问题。话说,dex爆棚怎么办,只能分包了,multidex在gradle中就支持。但是官网上说在4.0一下可能会有问题,so想用的话还是自己研究下。这块不是我搞的,是另一个同事做的,但是这也意味着彻底告别了Ant,虽然用Ant也可以分包,但是觉得既然更好的解决方案,为啥不用呢。
扯远了,说说这个gradle,着实被恶心了一把。
- 我想剥离出的我的业务逻辑,使用apply from: 加载另一个地方的gradle文件,或者直接http的方式的远程加载。当时还寻思着可以搞一个svn仓库啥的,结果是现在都没搞定。原因是在apply 目标文件的时候,会尝试编译目标gradle,于是在那一堆import中挂掉了,因此现在的gradle很是臃肿,后面的话会尝试建立一个自定义的插件去解决一下
- 脚本写完了,跑在windows上时时各种坑,尤其是路径,被弄的不行不行的了,还有那个copy task,简直是shit,如果into的那个目录里的文件在下次执行的时候没有清理掉,那么有很大几率出错。当然我还使用了rename这个方法
finally:不管怎么说伴随着graldew -P 跟着一大坨的参数搞完了,路还很长,骚年继续走吧
转载请注明出处:
http://blog.youkuaiyun.com/sanyinchen/article/details/50901576