est-il possible de spécifier une dépendance dans Gradle (dans Android studio) à un autre projet Gradle en dehors des limites du projet actuel? Par exemple avec un chemin relatif quelque chose comme ceci:
dependencies {
compile project('../../stdlib/dagger')
}
Donc ce que je fais, c'est quelque chose comme ça:
J'ai une application Android. La structure ressemble à ceci:
Et j'ai un gradle Android contenant 3 sous-modules:
Ce que je veux, c'est compiler le module dagger, utils, http dans le projet MyApp.
Les modules des bibliothèques stdlib sont en cours de développement intensif et se développeront à mesure que MyApp grandira. Par conséquent, je ne veux pas les pousser dans un référentiel maven chaque fois que je fais un petit changement.
Y a-t-il une possibilité de lier d'autres projets Gradle d'une manière ou d'une autre? Im à la recherche d'une solution temporelle. Je vais pousser la bibliothèque std dans le référentiel maven une fois que la source est stable.
En outre, comme solution de contournement, une solution avec sourceSet serait possible. J'ai également envisagé de créer un dossier de bibliothèques dans MyApp qui est un lien symbolique vers stdlib, mais je ne l'ai pas fait fonctionner comme prévu:
dependencies { compile project(':libraries:dagger') }
Une idée de comment résoudre une telle dépendance à Gradle?
Vous pouvez inclure un module de projet racine externe en utilisant le fichier 'settings.gradle' de votre projet principal. Il doit également s'agir d'un projet gradle et dans la situation de construction spécifique Android, vous devez configurer chaque module en tant que projet de plugin "Android-library".
Par exemple, dans settings.gradle du projet 'MyApp', vous pouvez essayer ceci:
include 'app'
include 'dagger'
project(':dagger').projectDir = new File('/Users/foo/workspace/stdlib/dagger')
Votre build.gradle 'MyApp' doit refléter le besoin du module 'dagger' d'une manière relative Gradle:
dependencies {
compile project(':dagger')
}
Et c'est tout. Répétez cette étape avec chaque module externe dont vous avez besoin et vous aurez une configuration multi-projets Gradle appropriée.