宽禁带半导体 Zookeeper 网络服务器 劝酒文化 magento javafx directory swiftui 后台管理页面模板 jquery去除空格 mysql升序 配置tomcat环境变量 python正则匹配中文 matlab输入参数太多 idea批量替换快捷键 python库 python中的if语句 python用什么ide python文件读取 java中random 变量的类型 java语言入门 nginx安装教程 linux文档 亚索刀光特效包 js延迟加载的方式 ps选择反向快捷键 魔兽地图七个人 视频编辑专家下载 操作系统安装 文件批量更名 兽之祝福 pr抠图 固态硬盘有什么用 淘新闻下载 exe文件反编译 sai怎么复制图层 cdr快捷键设置 俄罗斯方块java 代理服务器软件
当前位置: 首页 > 学习教程  > 编程语言

Jenkins+Gradle实现android开发持续集成、打包

2020/8/31 15:41:49 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

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%即可


本文链接: http://www.dtmao.cc/news_show_150397.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?