La méthode recommandée par le plugin Gradle de Google pour configurer vos fichiers gradle afin de construire plusieurs projets présente des lacunes Si vous avez plusieurs projets qui dépendent d'un projet de bibliothèque, cet article explique brièvement la configuration recommandée par Google, ses lacunes, et recommande une méthode différente pour configurer vos fichiers gradle afin de prendre en charge les configurations multi-projets dans Android Studio :
Une autre configuration multi-projets pour Android studio
Un chemin différent :
Il s'avère qu'il existe un meilleur moyen de gérer plusieurs projets dans Android Studio. L'astuce consiste à créer des projets Android Studio distincts pour vos bibliothèques et à indiquer à gradle que le module de la bibliothèque dont dépend votre application est situé dans le répertoire de projet de la bibliothèque. Si vous vouliez utiliser cette méthode avec la structure de projet que j'ai décrite ci-dessus, vous feriez ce qui suit :
- Créer un projet Android Studio pour la bibliothèque StickyListHeaders
- Créer un projet Android Studio pour App2
- Créer un projet Android Studio pour App1
- Configurer App1 et App2 pour construire les modules dans le projet StickyListHeaders.
La quatrième étape est la plus difficile, c'est donc la seule que je vais décrire en détail. Vous pouvez référencer des modules qui sont externes au répertoire de votre projet en ajoutant une déclaration de projet dans votre fichier settings.gradle et en définissant la propriété projectDir sur l'objet ProjectDescriptor qui est retourné par cette déclaration de projet :
Le code que l'on doit mettre dans settings.gradle
:
include ':library1'
project(':library1').projectDir = new File('../StickyListHeader/library1')
Si vous avez fait cela correctement, vous remarquerez que les modules référencés par votre projet apparaîtront dans le navigateur du projet, même si ces modules sont externes au répertoire du projet :
Cela vous permet de travailler simultanément sur le code de la bibliothèque et sur celui de l'application. L'intégration du contrôle de version fonctionne également très bien lorsque vous référencez des modules en externe de cette manière. Vous pouvez livrer et pousser vos modifications au code de la bibliothèque tout comme vous pouvez livrer et pousser des modifications au code de votre application.
Cette façon de mettre en place plusieurs projets permet d'éviter les difficultés que présente la configuration recommandée par Google. Parce que nous faisons référence à un module qui se trouve en dehors du répertoire du projet, nous n'avons pas besoin de faire des copies supplémentaires du module de la bibliothèque pour chaque application qui en dépend et nous pouvons mettre à jour nos bibliothèques sans aucune sorte d'absurdité de git submodule.
Malheureusement, cette autre façon de mettre en place des projets multiples est très difficile à trouver. De toute évidence, ce n'est pas quelque chose que vous trouverez en consultant le guide de Google, et pour l'instant, il n'y a aucun moyen de configurer vos projets de cette manière en utilisant l'interface utilisateur d'Android Studio.