gradle可配置性非常强,如果使用下面的配置 gradle assembleRealse -PoutApkPath=base.apk -Pextra_param=middlePath
其中 -P是传递profile传输 也可也使用-D传递环境变量参数值
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
}
}
apply plugin: 'android'
dependencies {
//compile project(":emojilib")
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
signingConfigs {
release {
storeFile file(System.getenv("KSTORE"))//从环境变量获取获取keystroe的路径
//System.console().readLine("\nKeystore password: ")
storePassword "pwd"
keyAlias "alias"
keyPassword "pwd"
}
}
buildTypes {
release {
zipAlign true
signingConfig signingConfigs.release
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt') , 'proguard.cfg'
}
debug {
zipAlign true
}
}
tasks.withType(Compile) {
options.encoding = "UTF-8"
}
compileSdkVersion 17
buildToolsVersion "19.1.0"
lintOptions {
abortOnError false
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
//instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
android.applicationVariants.all { variant ->
current_branch="default"
if (project.hasProperty('branch')) {
println "current branch ${branch}"
current_branch=branch
}
extra_param="";
if (project.hasProperty('extra_name')) {
extra_param=extra_name
}
outputFile=file(System.getenv("USER_DEFAULT_DIR")+"/app_${current_branch}_${extra_param}_${variant.name}.apk")
if (project.hasProperty('outApkPath')) {
outputFile=file(outApkPath)
}
println "****************************"
println "outputFile: ${outputFile} branch=${current_branch}"
println "****************************"
}
}