标签:
我们反过来想一想,程序员小李的工作有意义吗,首先肯定耽误它手头的工作吧,对于公司来说程序员的时间就是金钱,还有如果哪一天程序员小李脑子发热了,忘记改debug参数了,忘记改versioncode值了,这些后果谁来承担呢?
不要怕,下面我们就来认识下今天得主人公,Jenkins+Gradle;
Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时Jenkins能实现监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。Jenkins的前身是Hudson,是一个可扩展的持续集成引擎。
http://mirrors.jenkins-ci.org/war/latest/jenkins.war
将下载的jenkins.war包直接放到tomcat下的webapps目录下,然后启动tomcat即可安装完成,接下来登录:http://localhost:8080/jenkins就能进入jenkins系统页面,在此不说tomcat如何配置环境变量。
当你进入jenkins系统管理页面,会出现如图提示,可修改tomcat的server.xml配置,在Connector 标签添加上 URIEncoding=”UTF-8”。
点击“系统管理” –> “Configure Global Security”
首先先添加一个administer用户作为超级管理员,全部权限都打勾,如图admin用户。保存,重启。用刚刚添加的超级管理员作为账号名注册一个账号,即可拥有超级管理员权限。
JDK、Gradle如果系统环境变量配置好的话就不用再配置,用默认的就行。
点击“系统管理”–> “系统设置”
点击“系统管理”–> “管理插件” –> “可选插件” 选中Gradle plugin插件安装重启即可。
Repository URL: svn 的 的地址,如果输入的地址需要输入用户名和密码,将自动跳出红色的提示信息,点击”enter credential” 进入设置svn 用户名。
Switches :即gradle 后面所接的命令。上面相当于执行gradle clean build命令。
Gradle 是以 Groovy 语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自动化构建工具。现在已是android的默认构建工具了。
从官网下载gradle-**.zip解压到本地,设置环境变量GRADLE_HOME,将%GRADLE_HOME%\bin加入到Path中即可。
从官网下载gradle-1.0-all.zip解压到本地,设置环境变量GRADLE_HOME,将%GRADLE_HOME%\bin加入到Path中即可。
进入cmd,输入 gradle -version看到如下界面,说明配置成功
apply plugin: 'com.android.application' def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("GMT+08:00")) } android { compileSdkVersion 23 buildToolsVersion '23.0.3' dataBinding { enabled = true } defaultConfig { applicationId "com.walid.mizar" testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner" /* Android 4.0 */ minSdkVersion 14 targetSdkVersion 23 multiDexEnabled true versionCode 20 versionName "1.3.0" } lintOptions { checkReleaseBuilds false abortOnError false } packagingOptions { exclude 'AndroidManifest.xml' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'pom.properties' } signingConfigs { release { storeFile file('xiaobai.keystore') storePassword 'xiaobai0824' keyAlias 'xiaobai' keyPassword 'xiaobai0824' } } buildTypes { release { signingConfig signingConfigs.release jniDebuggable false debuggable false //代码混淆开关,一定要注意现在已经使用minifyEnabled代替runProguard了 minifyEnabled false shrinkResources true zipAlignEnabled true shrinkResources false proguardFile 'proguard-project.txt' applicationVariants.all { variant -> variant.outputs.each { output -> def apk = output.outputFile if (apk != null && apk.name.endsWith('.apk')) { def fileName = "kangxiaobai_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk" output.outputFile = new File(apk.parent + "/package", fileName) } } } } } // 友盟多渠道打包 productFlavors { Official {} SanLiuLing {} HuaWei {} Baidu {} NineOneMarket {} AnzhuoShiChang {} YingYongBao {} WanDouJia {} Xiaomi {} MeiZu {} LeShangdian {} Anzhi {} TaoBao {} ZhongYiDong {} Others {} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } dexOptions { incremental false preDexLibraries = false jumboMode = false javaMaxHeapSize "4g" } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) }
Could not load Logmanager "org.apache.juli.ClassLoaderLogManager" java.lang.ClassNotFoundException: org.apache.juli.ClassLoaderLogManager at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
原因 :
Jenkins的Gradle Plugin拷贝所有Tomcat的环境变量到Gradle的JVM中,因此Gradle在使用JAVA_OPTS 作为合法参数时可能机会有下面这些问题
解决办法:
打开Tomcat bin目录下catalina.bat,注销下面代码:
Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary configuration failure takes precedence. java.lang.RuntimeException: SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
原因:
没有找到ANDROID_HOME的环境变量
解决办法:
1.Go to Jenkins > Manage Jenkins > Configure System
2.Check “Environment variables”
3.add name: ANDROID_HOME, value -> your android sdk dir
4.click “add”
5.SCROLL DOWN CLICK SAVE
C:\Users\admin\.jenkins\secrets\initialAdminPassword
希望这篇文章对IT同胞们会有所帮助,如果可以的话,帮忙点个赞哦~
Android开发之Jenkins+Gradle实现持续集成、apk多渠道打包
标签:
原文地址:http://blog.csdn.net/walid1992/article/details/51493271