使用Jenkins实现自动化打包
Jenkins个开源的持续集成工具,不只能够用来进行Android打包,也能够用来进行iOS打包、NodeJs打包、Java服务打包等。java
The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.android
Jenkins是使用Java开发的,官方提供一个war包,而且自带servlet容器,能够独立运行也能够放在Tomcat中运行。固然它也提供了mac等客户端,能够直接下载。
由于通常咱们都是将其部署到服务器上,因此这里就用下载jenkins.war放到Tomcat的方式来说解。git
安装Tomcat
去Tomcat官网下载最新的安装包,安装完成后启动tomcat.web
安装启动都很简答,就是下载后解压,而后打开terminal进入解压后的目录下的bin目录,而后执行startup命令:shell
能够看到上面我执行./startup.sh时提示权限问题了,这是由于用户没有权限致使没法运行,须要要chmod修改bin目录下.sh的权限。
修改完权限后启动就能够了,看到提示启动成功后,咱们能够在浏览器输入http://localhost:8080,若是能显示出来可爱的小喵咪,那就说明启动成功了。浏览器
有关tomcat更多的信息就不介绍了,通常在javaweb的学习过程当中都会学到。tomcat
部署Jenkins到Tomcat
去Jenkins官网进行下载,而后选择意向版本的.war包服务器
把下载后的war包放在本地tomcat目录下的webapps目录下。oracle
而后在浏览器中访问http://localhost:8080/jenkins/,若是看到如下界面,表明已经成功部署了.app
启动完成后会提示输入一个密码,上面有路径,咱们直接进去打开拷贝就能够了。
按照上面的路径,进入拷贝.
而后会出现安装选择页面,咱们选择默认的配置就能够。
而后就会出现如下界面,咱们等待安装就能够了,这个安装过程会灰常慢。 咱们也能够看到他会安装ant、gradle、git、svn、email等插件。
等安装完成后会看到用户名设置界面。
好了,大功告成,开始使用后的页面以下:
那就开始建立一个项目的项目:
建立后就会进入到项目设置页面:
而后咱们去设置源码管理,配置好分支和项目地址:
下面点击证书后面的add进行添加,而后选择用用户名和密码的登陆方式,输入用户名和密码:
而后继续进行设置构建部分,由于android打包须要使用Gradle因此,咱们选择使用Gradle而后进行配置Gradle:
而后设置Gradle版本:
这里你会发现没有Gradle版本,这是由于咱们没有去配置Gradle致使的,由于android打包须要Gradle和JDK因此咱们要先去配置下他俩,
进入到jenkins首页选择系统管理-全局工具配置:
里面的jdk和gradle均可以选择在线安装,若是jdk使用在线安装的话须要输入oracle帐号的的用户名和密码。
配置弯沉恭候,再回到刚才建立的JenkisDemo项目的配置页面继续进行构建配置:
而后就能够选择咱们刚才新添加的gradle版本了:
而后再Tasks里面输入对应的Task命令就能够了。
在里面构建后操做中选择增长构建后操做步骤,能够选择构建完后自动发邮件等。
到这里就配置完了,下面直接执行项目里面的当即构建就能够自动打包了。
可是报错了,咱们点本次构建列表中点入,再点击控制台输出能够查看详细的错误信息,提示说须要配置SDK,前面只配置了jdk忘了配置sdk了
打开系统管理-系统设置而后在全局变量-环境变量中增长Android_home配置:
好了,这样就能够了。
可是咱们再打包的时候不单单是想这样打一个简单的版本,而是想配置一下参数,来知足一些版本号,渠道等的需求。
咱们能够来到项目的设置页面,选择参数化构建过程-添加参数-选择选项参数等进行添加:
能够配置APP_VERSION、BUILD_TIME、PRODUCT_FLAVORS、BUILD_TYPE等
注意这里配置完成后,还要去在gradle task中去使用才能够(在命令后面加上配置的参数):
好了,配置完成后再返回到项目首页你就会发现以前的当即构建变成了Build with Parameters,点击它就能够直接构建了。
打包完成后能够自动放到服务器目录中,经过tomcat提供连接对外下载,也能够发邮件、生成二维码等。这里就不仔细介绍了。
jenkins可让咱们更自由的进行配置,操做,也能够经过shell脚本等进行更加深度的定制,提升了开发中打包的效率。
并且Jenkins还提供了不少静态代码分析检查的插件,能够直接去集成使用[Static Code Analysis Plug-ins](Static Code Analysis Plug-ins)