持续集成实施(二)
此文,接持续集成一的内容,今天主要简单梳理android打包的gradle
命令,和记述jenkins集成过程中遇到的问题和解决方案。
一、gradlew命令
在iOS持续集成过程中,打包最后用fastlane方案解决,在android打包过程中,发现之前的方式是gradle
,神奇的是fastlane也简介了gradle
,关键点是之前打包提示报错gradle
的版本较低,但是后来选择gradlew
却能执行了。
gradlew 是什么东西呢,和gradle貌似不大一样,肯定有关系。没错,他就是gradle wrapper,意思是gradle的一个包装,大家可以理解为在这个项目本地就封装了gradle,比如我的项目是HelloWord, 在HelloWord/gradle/wrapper/gralde-wrapper.properties文件中声明了它指向的目录和版本,
比如工程的内容是:
如果你项目没有该文件的话,那么gradlew会到~/.gradle/wrapper/dists/gradle-2.10-all下寻找,或者你新建给文件,内容复制到里面。其实你会发现是同一个目录咯。里面会有个随机数的文件夹,里面就是gradle,只要下载成功即可用grdlew wrapper的命令代替全局的gradle命令。
这就是在jenkins执行过程中选择Use Gradle Wrapper
的魅力之处了把。
二、遇到的问题和整理
1、升级gym中提示报错While executing gem(Gem:specific Gem Not Found Exception)
解决:很奇怪的解决方案sudo gem update gym -v 0.10.0
就是之前升级命令指向了升级的版本号。
2、jenkins在一个project中使用多个repo的内容。譬如在打包task中支持ci_android的项目代码。 简单来说就是可以在一个job中clone下多份源码然后一一进行操作。
解决:其实这里需要做反省,之前对jenkins研究不是很透,然后还信誓旦旦的说了错话,感觉自己打脸自己,好响。闲话不表,其实jenkins中一个插件可以实现,Multiple SCMs
可以实现,非常简单,
最重要的是可以在增加git源码的下面,有个选项Additional Behaviours==>check out to a sub-directory
可以新建一个子目录存放第
二个git下的源码。
下面会继续研究lint已经各种静态代码检查的内容,并且继续踏坑。。。。。