之前一直想在公司搭建一个集成编译的环境,一直没能成行,这次终于着手去做了,发现之前的 Hudson 已经演变成了如今的 Jenkins,关于 Oracle 跟各个开源社区以及其他厂商的一些关于商标的纷争真的很有意思,我觉得未来有可能的话,真的可以专门写一些关于这个话题的东西。具体可以参考 wikipedia 上的 介绍 。
因为 Jenkins 是基于 Java Servlet 实现的,所以需要依赖于某个 Servlet Container 来运行,我选择的是 Apache Tomcat。Tomcat 也是基于 Java 实现的,那么开始第一步吧。
第一步 安装 SDK
自行下载 JDK,安装配置环境变量,如下:
[bash light=”true”]
export JAVA_HOME=/usr/local/jdk1.6.0_29
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.
[/bash]
第二步 安装配置 Tomcat
下载 tomcat 安装包,直接解压,配置环境变量:
[bash light=”true”]
export CATALINA_HOME=/root/apache-tomcat-7.0.33
[/bash]
在 CentOS 的/etc/sysconfig/iptables 配置文件中加入规则:
1 |
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT |
通过$CATALINA_HOME/bin/startup.sh 启动 tomcat,找个浏览器试试能否访问,http://your_centos_server_ip:8080
确认 tomcat 能正常访问之后,开始第三步
第三步 安装配置 Jenkins
到 Jenkins 的主页 下载 Jenkins 的 war 文件,将该文件拷贝至$CATALINA_HOME/webapps 目录下,tomcat 会自动将 war 文件解压并部署,找个浏览器试试能否访问这个地址 http://your_centos_server_ip:8080/jenkins,如果可以的话那么 Jenkins 就算是部署好了。
第四步 配置 Android SDK 和 NDK 环境
这一步可能会稍微多一些,可以参考我的这篇文章,CentOS 64 位机器配置 Android SDK 和 NDK 环境 。
第五步 创建一个 Jenkins 的 Job
完全按照 Jenkins 的提示和帮助一步步进行下午,非常简单。
- 给 Project 设置名称
- 配置获取最新代码的方式,Jenkins 目前自带了 CVS 和 SVN 的插件,如果你的代码是通过 git 来管理的,只需要安装一个 git 的插件即可,Jenkins 有非常丰富的插件,Jenkins => Manage Jenkins => Manage Plugins,进入插件管理页面,打开 Available 的 Tab 页面,在 Filter 中输入 git,然后找到 Jenkins GIT plugin,勾选前面的复选框,之后点击页面下方的 Download now and install after restart,让它自己安装然后重启吧,重启之后就可以配置通过 git 来获取代码了
- 设置编译触发器规则,应该是完全和 Linux cron 的规则一致,可以 google 之。
- 配置如何编译方法,在服务器上我们肯定是脱离 ADT 环境的,通常我们会使用 Ant 来进行编译,自行下载并配置 Ant 的环境变量,确保 ant 命令可以正常使用
- 先通过 android 命令更新当前需要编译的项目,确保 ant 能找到正确的 sdk 路径和其他的配置,需要编译 release 包的话,可以在 project.properties 中配置好用于签名的 keystore 文件,具体可以参考 这篇文章 ,然后在 Jenkins 中配置 shell 中输入 android update project -p $WORKSPACE -n 工程名 -t 编译目标
- 配置 Ant 编译目标为 release
- 点击 Save 之后,回到 Job 的首页面,点击 Build Now,开始编译吧。可以通过查看 Console Output 来看所有编译的输出信息,有错就一一排查吧。