搭建linux环境下jenkins可移植环境
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可移植环境的更多相关文章
- linux系统下深度学习环境搭建和使用
作为一个AI工程师,对Linux的一些技能的掌握也能从一定层面反应工程师的资深水平. 要求1:基于SSH的远程访问(本篇文章) 能用一台笔记本电脑,远程登陆一台linux服务器 能随时使用笔记本电脑启 ...
- 【android开发】如何在Linux平台下安装JDK环境
原文:http://android.eoe.cn/topic/android_sdk Linux平台JDK安装 本文主要描述如何在Linux平台下安装JDK环境.进入网页:http://www.ora ...
- 番外篇:搭建Windows环境下的RabbitMQ环境
搭建Windows环境下的Rabbitmq环境 下载erlang语言包OTP.官网地址: https://www.erlang.org/downloads 如果下载不了,可以选择百度网盘下载,里面的版 ...
- win 环境下 node.js环境变量
在win 环境下 node.js环境变量有两种情况: (1)开发环境(development):开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告. ...
- Linux环境下Android开发环境的搭建
本文主要介绍在Ubuntu下Android开发环境的搭建,所使用的IDE为Eclipse(Android Studio同理,且可省去配置SDK以及安装adt插件的步骤). 1.安装JDK (1)JDK ...
- 【转】Windows环境下Android NDK环境搭建
原文网址:http://www.metsky.com/archives/525.html 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员 ...
- Windows环境下Android NDK环境搭建
前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员来讲,基本够用了,由于Linux系统的权限限制和Android封装架构限制,很多涉及底层设 ...
- Linux服务器下配置Java环境、JDK
前言 可以解决问题有/etc/profile与~/.bashrc环境文件区别 文件权限问题,只读readonly Java环境搭建 一.下载JDK包 地址:jdk1.8提取码:gx0b 把文件放到Li ...
- Linux系统下配置JDK环境变量
刚申请了阿里云,平时很少接触Linux,特此记录一下Linux系统下安装JDK的步骤. 1.进入usr:cd /usr: 2.创建java文件夹:mkdir java: 3.将下载好的文件拷贝至jav ...
随机推荐
- Hadoop RPC源码阅读-客户端
Hadoop版本Hadoop2.6 RPC主要分为3个部分:(1)交互协议(2)客户端(3)服务端 (2)客户端 先展示RPC客户端实例代码 public class LoginController ...
- 日常工作中使用的一些Mongodb语句
.通过_userID字段查询重复录入内容 > db.template.aggregate({}}},{$}}) .查询 db.template.find({"group_7ee1247 ...
- HDU-2550 百步穿杨
百步穿杨 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 【转】qtp安装时问题
1.安装qtp后要重启机器. 2.插件选择错误, 处理方式:重新启动QTP,勾选 WEB插件; 3.在安装QTP后,或者禁用IE浏览器里的一些ActiveX控件后,正常录制QTP时,对象识别不了;(保 ...
- [并发编程]使用线程安全队列和条件变量的notify来安排分步骤任务
// 方法1:直接构建N个THread来run foreach (i, size) { thread trd(&Instance::doWork, &inst); lstTrd.pus ...
- (转)Python:self
原文:http://www.douban.com/group/topic/19376685/ 这是对前面一个php程序员问python方法为什么要手写一个self的回答,当时那个帖非常的热闹,但是下面 ...
- AIX项目总结_oracle_sqlloader_01
近来一直在忙AIX的移行项目,但也因自己小小偷懒,所以到现在才开始记录.接下来,言归正传. 这个项目中,学习中了shell相关知识,从基本的语法命令(定义变量.特殊变量使用.循环控制.方法调用等)到l ...
- Lattice Diamond安装
1.下载:到Lattice官网 http://www.latticesemi.com/ 注册一个lattice的账号后就可以去下载Diamond,登陆后如下图,根据自己系统情况选择对应的版本,我用的是 ...
- PHP如何取出数组最后一个元素?
<?php $array=array("first","sencond","third"); #1.echo end($array); ...
- SDK更新太慢
同时,更新ADT和SDK Manager 在SDK Manager下Tools->Options打开了SDK Manager的Settings,选中“Force https://… source ...