2016-06-14 2 views
0

У меня есть библиотека, которая использует все наши приложения. за исключением общего кода и ресурсов, которым я хотел поделиться градиентом. каждое приложение построено: some_app/ | - settings.gradle - build.gradle | - mylib/ | -build.gradle - other_lib/ - приложение/ | - build.gradleзапустить общий код градиента в файле андроида базового проекта

прямо сейчас я говорю о build.gradle в корневом каталоге. Тот, который определяет закрытие buildScript с помощью dependecies и allprojects {}.

Я попытался использовать заявку: './mylib/gradle_files/baseProject.gradle' он работает, но тогда мое приложение не может найти плагин android. по какой-то причине зависимостей classpath не были введены в скрипт сборки! я затем попытался создать список и использовать это:

ext.projectBaseDependencies = ['com.android.tools.build:gradle:2.1.2', 'com.google.gms:google-services:3.0.0'] 

Затем я использовал список в моем закрытия:

apply from: './mylib/gradle_files/baseProject.gradle' 

buildscript { репозиториев { jcenter() } зависимостей { classpath projectBaseDependencies } }

it doesn 't work, gradle не находит мою переменную, определенную в baseProject.gradle. У меня есть догадка, применяемая к работам ПОСЛЕ ПОСЛЕДУЮЩЕЙ ЗАДАЧИ buildScript :-(

Есть ли способ разделить код сценария gradle во всех приложениях, если он не применяется, что МОЖЕТ работать? Skip configuration and config in afterEvaluate { ?} пункт

ответ

0

Почему бы не использовать Gradle файла в общей библиотеке Если общая библиотека включает в себя build.gradle файла, вы можете применить андроид библиотека плагин:

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 

     consumerProguardFiles "proguard-rules.pro" 
    } 
} 

dependencies { 
    // Your common dependencies here 
} 

Затем вы можете включить библиотеку в вашем проект settings.gradle:

include ':mobile' 
project(':common').projectDir = new File("/Users/example/path/to/common") 

Затем добавить их к зависимостям в build.gradle проекта:

dependencies { 
    compile project(':common') 
    // Your other project dependencies 
} 
+0

это теперь позволяет использовать свойства самого buildscript, для Gradle файла OFTHE приложения и Gradle файла библиотек я не имею проблема использования 'apply from:' это только в корневой сборке, файле gadle и bildScript {} закрытии – codeScriber

Смежные вопросы