1:背景

项目领域:android。

项目需求为:建立一个网站用于产品经理(以下称为PM)配置该apk所需服务插件,打包出包(包含:apk,文档,demo等等)给厂商并且记录打包出包等信息。

项目设计方案简单文字描述:

采用PHP做服务端开发语言,以nginx为服务器,以mysql数据库存储数据,以jenkins为持续构建辅助工具。

简单架构如下:

打包流程图如下:

2:jenkins简介

Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。说白了,它本质上是一个web项目,它提供构建打包项目,从svn拉取项目,执行脚本等等功能。从官网下载jenkins会获取一个jenkins.war文件,.war文件格式是tomcat服务中项目发布时会自解压的文件格式。

安装方式:需要先安装jdk 1.4以上版本: 一般推荐第二种,比较稳定。

1:可以通过java -jar jenkins.war解压该文件,然后就可以在浏览器中输入:locathost:8080打开jenkins首页。

2:将jenkins.war文件移到tomcat的webapps目录下,运行tomcat,.war文件会自动解压成jenkins文件夹。访问:localhost:8080/jenkins即可打开jenkins首页。

3:环境搭建和配置

机器为linux系统。搭建过程中牵涉到的环境如下:

1:jdk环境,需要1.4以上。

2:安装tomcat

3:安装jenkins,下载jenkins.war包,copy到tomcat的webapps目录下。

4:安装和配置android环境,提供打包脚本中的各种android相关命令。

5:安装ant,提供执行ant功能(android apk打包采用的ant脚本)。

6:配置svn。

搭建之后需要保证可移植性,即以后更换机器,将一个文件夹copy到新机器上面,执行一个脚本即可。为此有以下搭建目录结构(其中目录名称都可以自己定,红色部分为关键):

1:将所有的文件都放入到linux根目录的/data/jenkins目录下,将/data目录挂载到一个单独的硬盘上面

2:所有的环境变量配置都需要放入到/data/jenkins/.bashrc脚本中,.bashrc脚本需要配置到开机启动执行列表中

3:jenkins项目会有一个对应的工作目录,主要用于保存构建记录,svn拉取的项目文件等等。工作文件名一般为:.jenkins,需要将其配置到/data/jenkins目录下,该目录地址可以在jenkins首页中查看,其中也有提示如何配置。

3.1:安装java jdk

下载java jdk 1.6以上版本的压缩包,将其进行解压到/data/jenkins/java_xxx目录下,然后就是配置环境变量,在/data/jenkins/.bashrc文件中增加代码。

1:export JAVA_HOME=/data/jenkins/java_xxxx,该目录主要用于classpath和path两个环境变量,也提供给一些第三方软件使用,比如:tomcat。

2:配置classpath,主要用于进行类搜索,和import,package相关。由于这个配置比较复杂,所以sun公司帮助用户不配置的情况下,也能够运行java项目。

export CLASSPATH=.:$JAVA_HOME/dt.jar:$JAVA_HOME/tool.jar;

3:配置path,path指定一些目录,这些目录下的命令可以被用户直接运行,比如:配置jdk的bin目录,就可以直接运行java -version。

export PATH=$JAVA_HOME/bin:$JAVA_HOME/lib:$PATH;

配置完成之后,运行java -version,查看是否配置正确。

3.2:安装tomcat

下载tomcat 7.0以上版本的压缩包,进行解压到/data/jenkins/tomcat_xxx目录下。执行tomcat_xxx/bin/startup.sh,再访问localhost:8080查看是否运行正常。

运行正常之后,需要加入到开机自启动中,在etc/init.d中新建tomcat脚本,先执行/data/jenkins/.bashrc脚本,再启动tomcat中的startup.sh,具体代码请进行查询。

3.3:安装jenkins

下载jenkins.war,copy到/tomcat_xxx/webapps目录下,然后配置环境变量,在/data/jenkins/.bashrc中增加。

export JENKINS_HOME=/data/jenkins/.jenkins,主要配置了jenkins的数据文件目录,其中存储了每次构建记录,日志以及svn拉取的文件。

然后打开localhost:8080/jenkins/configure,配置工作空间目录(存放svn拉取的文件)和构建空间目录,如图:

3.4:安装android环境

下载android sdk,copy到/data/jenkins/目录下,命名为android-sdk,然后配置环境变量,在/data/jenkins/.bashrc中增加:

export ANDROID_SDK_HOME=/data/jenkins/android-sdk,这主要指定android根目录。

export PROGUARD_HOME=/data/jenkins/android-sdk/tools/proguard,这主要用于打包中的混淆。

3.5:安装ant

下载ant压缩包,解压放入到/data/jenkins/ant-xxxx,然后配置环境变量,在/data/jenkins/.bashrc中增加:

export PATH=/data/jenkins/ant-xxx/bin:$PATH

3.6:设置svn

jenkins一般自带svn,打开jenkins首页,localhost:8080/jenkins,新建一个项目,在svn一栏设置svn地址,点击授权,输入用户名和密码,进行保存。以后打包不需要进行svn授权,从而可以实现自动打包。如图:

设置成功之后,还需要到/data/jenkins/目录下,执行svn info 加上你的工作目录,进行授权,并且永远保存。

4:jenkins api

jenkins提供界面化的操作方式,也提供了api,可供其他平台调用。在我的项目中,服务端则会通过jenkins api发送命令给jenkins建立项目,删除项目,获取项目状态等。

api查看url:https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API。

5:注意事项

1:所有的环境配置都在data/jenkins/.bashrc中, .bashrc需要开机自启动,可以放入到etc/init.d/tomcat中执行。

2:android sdk安装时需要查看是否和linux系统匹配,如果64位系统装了32位,则会出现ant打包时异常错误,缺少系统级别命令,当然也可以一个一个的补安装。

3:ant脚本中引用的命令,需要和android sdk的目录,jdk的目录对应起来。否则找不到命令。

6:yy

这是第一次写博客,感觉确实不错,对自己很有帮助。写的不好地方,欢迎浏览者给意见。

搭建linux环境下jenkins可移植环境的更多相关文章

  1. linux系统下深度学习环境搭建和使用

    作为一个AI工程师,对Linux的一些技能的掌握也能从一定层面反应工程师的资深水平. 要求1:基于SSH的远程访问(本篇文章) 能用一台笔记本电脑,远程登陆一台linux服务器 能随时使用笔记本电脑启 ...

  2. 【android开发】如何在Linux平台下安装JDK环境

    原文:http://android.eoe.cn/topic/android_sdk Linux平台JDK安装 本文主要描述如何在Linux平台下安装JDK环境.进入网页:http://www.ora ...

  3. 番外篇:搭建Windows环境下的RabbitMQ环境

    搭建Windows环境下的Rabbitmq环境 下载erlang语言包OTP.官网地址: https://www.erlang.org/downloads 如果下载不了,可以选择百度网盘下载,里面的版 ...

  4. win 环境下 node.js环境变量

     在win 环境下 node.js环境变量有两种情况:  (1)开发环境(development):开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告. ...

  5. Linux环境下Android开发环境的搭建

    本文主要介绍在Ubuntu下Android开发环境的搭建,所使用的IDE为Eclipse(Android Studio同理,且可省去配置SDK以及安装adt插件的步骤). 1.安装JDK (1)JDK ...

  6. 【转】Windows环境下Android NDK环境搭建

    原文网址:http://www.metsky.com/archives/525.html 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员 ...

  7. Windows环境下Android NDK环境搭建

    前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员来讲,基本够用了,由于Linux系统的权限限制和Android封装架构限制,很多涉及底层设 ...

  8. Linux服务器下配置Java环境、JDK

    前言 可以解决问题有/etc/profile与~/.bashrc环境文件区别 文件权限问题,只读readonly Java环境搭建 一.下载JDK包 地址:jdk1.8提取码:gx0b 把文件放到Li ...

  9. Linux系统下配置JDK环境变量

    刚申请了阿里云,平时很少接触Linux,特此记录一下Linux系统下安装JDK的步骤. 1.进入usr:cd /usr: 2.创建java文件夹:mkdir java: 3.将下载好的文件拷贝至jav ...

随机推荐

  1. Rocky(dfs)

    题目描述 Sylvester Stallion is an old horse who likes nothing better than to wander around in the fields ...

  2. ES2015 (ES6)

    是时候使用ES 2015了 你可能不再需要Underscore BABEL Grunt 先 babel 再用 babel 后的文件 uglify 去掉严格模式.严格模式下全局的this转成了undef ...

  3. Node v4.1.1

    Installing Node.js via package manager curl --silent --location https://deb.nodesource.com/setup_4.x ...

  4. wpa_supplicant 配置与应用

    概述 wpa_supplicant是wifi客户端(client)加密认证工具,和iwconfig不同,wpa_supplicant支持wep.wpa.wpa2等完整的加密认证,而iwconfig只能 ...

  5. HDU 5969 最大的位或 【贪心】 (2016年中国大学生程序设计竞赛(合肥))

    最大的位或 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem De ...

  6. javascript在alert()出现中文乱码

    今天在写jquery代码时,alert()总是出现中文乱码 琢磨了好一会儿,在网上查的资料是html页面上设置charset为GB2312 <meta charset="GB2312& ...

  7. ajax向后台传值

    function save_person(){ //保存个人信息编辑 var data = getFormJson(".row"); //获取表单数据 $.post(clerk_u ...

  8. JavaScript---网络编程(4)-Date、Math、Global和自定义对象

    本节博客进行Date对象.Math对象.Global对象和自定义对象的用法演示. 首先是一个out.js文件内容(输出到网页中的自定义输出方法): function println(parma){ d ...

  9. 《A First Course in Probability》-chaper5-连续型随机变量-随机变量函数的分布

    在讨论连续型随机变量函数的分布时,我们从一般的情况中(讨论正态分布的文章中提及),能够得到简化版模型. 回忆利用分布函数和概率密度的关系求解随机变量函数分布的过程,有Y=g(x),如果g(x)是严格单 ...

  10. yii 中设置提示成功信息,错误提示信息,警告信息

    方法一: <?php Yii::app()->user->setFlash(‘success’,”Data saved!”); 设置键值名为success的临时信息.在getFlas ...