如何判断摇篮使用不同AndroidManifest命令行? [英] How to tell Gradle to use a different AndroidManifest from the command line?
问题描述
我有一个多模块项目。从我的项目(其中包含多个模块)的根,我希望能够调用摇篮建设,并将它使用不同的AndroidManifest在我根据一些参数我通过在模块中的一个。什么是做到最好的方法本?我应该使用一个gradle.properties文件或可我在settings.gradle文件莫名其妙地指定一个不同的build.gradle?任何帮助AP preciated!
I have a multi-module project. From the root of my project (which contains multiple modules), I want to be able to call 'gradle build' and have it use a different AndroidManifest in one of my modules depending on some parameter I pass in. What's the best way to accomplish this? Should I use a gradle.properties file or can I specify a different build.gradle somehow in my settings.gradle file? Any help appreciated!
settings.gradle:
settings.gradle:
include 'ActionBarSherlock'
include '<main_app>'
build.gradle:
build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.2'
}
}
apply plugin: 'android'
dependencies {
compile project(':ActionBarSherlock')
}
android {
buildToolsVersion "17.0"
compileSdkVersion 17
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
我在寻找使用不同的AndroidManifest.xml中的最佳方式,说的是我在//test/AndroidManifest.xml。我需要能够指定这种变化在命令行。任何想法?
I'm looking for the best way to use a different AndroidManifest.xml, say one I have in //test/AndroidManifest.xml. And I need to be able to specify this change from the command-line. Any ideas?
推荐答案
我通过使用不同的版本类型解决了这个。
I solved this by using different build types.
下面是我的build.gradle:
Here's my build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.2'
}
}
apply plugin: 'android'
dependencies {
compile project(':facebook-android-sdk-3.0.1:facebook')
compile project(':google-play-services_lib')
compile project(':nineoldandroids')
compile project(':SlidingMenu-master:library')
compile project(':ViewPagerIndicator')
compile project(':volley')
compile project(':windowed-seek-bar')
compile files('compile-libs/androidannotations-2.7.1.jar', 'libs/Flurry_3.2.1.jar', 'libs/google-play-services.jar', 'libs/gson-2.2.4.jar', 'libs/picasso-1.1.1.jar', 'libs/crittercism_v3_0_11_sdkonly.jar', 'libs/gcm.jar', 'libs/apphance-library.jar')
}
android {
buildToolsVersion "17.0"
compileSdkVersion 17
signingConfigs {
debug {
storeFile file('keystores/debug.keystore')
}
}
buildTypes {
debug {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
release {
zipAlign true
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
utest {
debuggable true
signingConfig signingConfigs.debug
sourceSets {
main {
manifest.srcFile 'utest/AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
}
}
您可以看到,对于我utest建设,我指定一个表现在不同的目录中。工作原理。
You can see that for my utest build, I'm specifying a manifest in a different directory. works.
这篇关于如何判断摇篮使用不同AndroidManifest命令行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!