Как сказать Gradle использовать другой AndroidManifest из командной строки?

У меня многомодульный проект. Из корня моего проекта (который содержит несколько модулей), я хочу иметь возможность называть «конструкцию градиента» и использовать его в другом модуле AndroidManifest в одном из моих модулей, в зависимости от какого-либо параметра, который я передаю. Каков наилучший способ выполнения это? Должен ли я использовать файл gradle.properties или я могу указать другой build.gradle как-то в моем файле settings.gradle? Любая помощь ценится!

settings.gradle:

include 'ActionBarSherlock' include '<main_app>' 

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. И мне нужно указать это изменение из командной строки. Есть идеи?

Я решил это, используя разные типы сборки.

Вот мой 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'] } } } } } 

Вы можете видеть, что для моей самой чистой сборки я указываю манифест в другом каталоге. работает.