web-dev-qa-db-fra.com

Exiger un projet Gradle depuis un autre répertoire

J'ai un répertoire/projet d'installation comme ceci:

C:\
    _dev\
        Projects\
            Logger
            MyProject

Logger est un projet de bibliothèque Android utilisant Gradle. MyProject est un projet de projet standard Android qui nécessite utiliser la bibliothèque Logger.

J'utilise Android Studio et j'ai essayé d'ajouter Logger aux bibliothèques externes. Bien que cela fonctionne pendant le développement, je reçois des messages indiquant que la classe n'est pas trouvée lors de la construction.

Je suis complètement nouveau dans Gradle, mais j'ai essayé ce qui suit dans mon build.gradle dans MyProject:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'Android'

repositories {
    mavenCentral()
}

Android {
    compileSdkVersion 18
    buildToolsVersion "18.1.0"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 18
    }

    dependencies {
        compile files("../Logger")
    }
}

dependencies {
    compile 'com.Android.support:gridlayout-v7:18.0.0'
    compile 'com.Android.support:appcompat-v7:18.0.0'
}
60
euantorano

Le moyen le plus simple est de créer MyProject un multi projet avec le projet Logger en tant que sous-projet.

settings.gradle dans le répertoire MyProject:

include ":logger"
project(":logger").projectDir = file("../logger")

Dans le build.gradle de MyProject vous pouvez maintenant référencer cette lib en tant que projet:

dependencies {
     compile 'com.Android.support:gridlayout-v7:18.0.0'
     compile 'com.Android.support:appcompat-v7:18.0.0'
     compile project(":logger")
}
134
Rene Groeschke

Android Studio 2.2.3:

Ajouter à settings.gradle.

include ':app', ':new_lib'
project(':new_lib').projectDir = new File('../new_lib/app')
  • Le chemin doit être relatif à la racine du projet sur lequel vous travaillez.
  • Le module que vous référencez doit avoir une référence à son répertoire "app".

Puis éditez votre structure de projet | Modules pour configurer les dépendances.

11
Dave Tyler

Essayez d’ajouter la dépendance à la section globale "Dépendances", et non à "Android> les dépendances". Au cours du développement, la configuration "Android" est utilisée, mais pas pour conditionner le runtime.

dependencies {
    compile 'com.Android.support:gridlayout-v7:18.0.0'
    compile 'com.Android.support:appcompat-v7:18.0.0'
    compile files("../Logger")
}

Il peut également être intéressant d’envisager de configurer une configuration de niveaux pour plusieurs projets, avec un build.gradle et settings.gradle dans le répertoire parent partagé, comme ici: http://www.gradle.org/docs/ current/userguide/multi_project_builds.html

6
miw