Jenkins简介

Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。Jenkins 的前身是Hudson是一个可扩展的持续集成引擎。

Jenkins安装与配置

下载地址:http://mirrors.jenkins-ci.org/war/latest/jenkins.war。将下载的jenkins.war包直接放到tomcat下的webapps目录,启动tomcat即可安装完成。

编码问题:进入jenkins系统管理页面,会出现如图提示,可修改tomcat的server.xml配置,在Connector  标签添加上 URIEncoding="UTF-8" 。

安全配置:如图

首先的先添加一个administer用户作为超级管理员,全部权限都打勾,如图boluo用户。保存,重启。用刚刚添加的超级管理员作为帐号名注册一个帐号,即可拥有超级管理员权限。

JDK、gradle如果系统环境变量设置的话就不用再设置,用默认的就行。

邮件通知:系统管理>系统设置  如图

Jenkins gradle插件安装

系统管理>管理插件>可选插件 选中Jenkins Gradle plugin插件安装重启即可。

安装慢的话,可以把插件下载下来,手动上传插件或设置代理。如图

Jenkins新建任务

点击新Job,输入任务名称选中构建一个自由风格的软件项目,点击OK,跳到配置页面

源码管理:如图。

Repository URL: svn 的 的地址,如果输入的地址需要输入用户名和密码,将自动跳出红色的提示信息,点击"enter credential" 进入设置svn 用户名。

    构建触发器:如图

Build periodically:周期进行项目构建(它不关心源码是否发生变化)

Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。

这里我选Poll SCM,(H/5 H(9-23) * * *)

第一个参数代表的是分钟 minute,取值 0~59;

    第二个参数代表的是小时 hour,取值 0~23;

    第三个参数代表的是天 day,取值 1~31;

    第四个参数代表的是月 month,取值 1~12;

    最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。

    如H/5 * * * * 表示的就是每5分钟检查一次源码变化。

构建:添加Invoke Gradle script,配置如图

Switches :即gradle 后面所接的命令。上面相当于执行gradle clean build命令。

    构建后操作:构建失败可以发送邮件通知,如图

gradle 介绍

Gradle 是以 Groovy 语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自动化构建工具。现在已是android的默认构建工具了。

android build.gradle配置

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.6'//依赖
    }
}

apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')//添加android依赖libs
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"
	//签名
    signingConfigs {
        myConfig {
            storeFile file("debug.keystore")
            storePassword "android"
            keyAlias "androiddebugkey"
            keyPassword "android"
        }
    }

    defaultConfig {
        versionCode 1
        versionName getVersionName()
        minSdkVersion 8
        targetSdkVersion 17
    }

    //渠道
    productFlavors {
        google{

        }
        tantai{

        }
    }

    buildTypes{
        release {
            signingConfig signingConfigs.myConfig
            runProguard true
            proguardFile 'proguard.cfg'
        }
    }

    sourceSets {
        main {
            manifest {
                srcFile 'AndroidManifest.xml'
            }
            java {
                srcDir 'src'
            }
            res {
                srcDir 'res'
            }
            assets {
                srcDir 'assets'
            }
            resources {
                srcDir 'src'
            }
            aidl {
                srcDir 'src'
            }
		}
	}
}

tasks.withType(Compile) {
    options.encoding = "UTF-8"
}
//替换AndroidManifest.xml的UMENG_CHANNEL_VALUE字符串为渠道名称
android.applicationVariants.all{ variant ->
    variant.processManifest.doLast{
        copy{
            from("${buildDir}/manifests"){
                include "${variant.dirName}/AndroidManifest.xml"
            }
            into("${buildDir}/manifests/$variant.name")

            filter{
                String line -> line.replaceAll("UMENG_CHANNEL_VALUE", "$variant.name")
            }

            variant.processResources.manifestFile = file("${buildDir}/manifests/${variant.name}/${variant.dirName}/AndroidManifest.xml")
        }
   }
}

遇到的问题:tomcat下gradle 构建如果遇到Could not load Logmanager "org.apache.juli.ClassLoaderLogManager"

解决:注释掉catalina.bat里面的set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%即可

Jenkins+Gradle实现android开发持续集成、打包的更多相关文章

  1. 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】

    背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...

  2. 【iOS】Jenkins Gitlab持续集成打包平台搭建

    Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...

  3. Jenkins构建Android项目持续集成之findbugs的使用

    Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...

  4. 使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境

    使用jenkins+calabash+cocoapods搭建ios持续集成环境 持续集成 持续集成到底是什么呢?依据敏捷大师Martin Fowler的定义: 持续集成是一种软件开发实践. 在持续集成 ...

  5. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...

  6. Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...

  7. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...

  8. Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一) 2015-01-14 20:28 by 飘扬的红领巾, 4322 阅读, 5 评论, 收藏, 编辑 ...

  9. Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上)

    Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上) Jenkins+Docker+SpringCloud持续集成流程说明 大致流程说明: 1) 开发 ...

随机推荐

  1. Nginx几种负载均衡算法及配置实例

    本文装载自: https://yq.aliyun.com/articles/114683 Nginx负载均衡(工作在七层"应用层")功能主要是通过upstream模块实现,Ngin ...

  2. 面试中的Java链表

    链表作为常考的面试题,并且本身比较灵活,对指针的应用较多.本文对常见的链表面试题Java实现做了整理. 链表节点定义如下: static class Node { int num; Node next ...

  3. ng-show,ng-if区别

    在使用bootstrap中,我们会经常用到按钮组,也就是btn-group,如果仔细观察的话,会发现一个按钮组的第一个和最后一个按钮分别是有圆角的,如下图: 但是中间的按钮是没有圆角的,这样显得比较美 ...

  4. Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考

    前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3 ...

  5. [Android] Toast问题深度剖析(二)

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者: QQ音乐技术团队 题记 Toast 作为 Android 系统中最常用的类之一,由于其方便的api设计和简洁的交互体验,被我们所广泛采用 ...

  6. Maven入门知识介绍

    1.1 Maven简介 Apache Maven 是一个软件项目管理工具.基于项目对象模型的概念,Maven可用来管理项目的依赖.编译.文档 等信息. 使用maven管理项目时,项目的依赖的jar包将 ...

  7. MongoDB - Indexing, Replication, and Security

    Introduction of Indexes: 1> Provide high performance 2> Provide efficient execution to queries ...

  8. Hadoop源码学习之HDFS(一)

    Hadoop的HDFS可以分为NameNode与DataNode,NameNode存储所有DataNode中数据的元数据信息.而DataNode负责存储真正的数据(数据块)信息以及数据块的ID. Na ...

  9. yii2 源码分析 Component类分析 (二)

    转载请注明链接http://www.cnblogs.com/liuwanqiu/p/6739538.html 组件(component),是Yii框架的基类,实现了属性.事件.行为三类功能,它集成自o ...

  10. 802.1X和NAP整合实验手册

    实验描述 公司内部有多个部门,创建了域的架构,并搭建了DHCP服务器和Radius服务器,要求每个部门都独享一个网段,实现每位用户插上网线后,跳出窗体进行身份验证,如果用户通过验证,根据用户所在的部门 ...