标签:
我们反过来想一想,程序员小李的工作有意义吗,首先肯定耽误它手头的工作吧,对于公司来说程序员的时间就是金钱,还有如果哪一天程序员小李脑子发热了,忘记改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