Comment append un dossier source lié dans Android Studio?

Dans Eclipse, je peux append un dossier source à mon projet Android en tant que “dossier source lié”. Comment puis-je obtenir la même chose dans Android Studio?

Ou est-il possible d’append un dossier externe à intégrer dans gradle?

dans votre build.gradle, ajoutez ce qui suit à la fin du nœud android

android { .... .... sourceSets { main.java.srcDirs += 'src/main/' } } 

La bonne réponse est:

 android { .... .... sourceSets { main.java.srcDirs += 'src/main/' } } 

De plus, si votre répertoire source externe n’est pas sous src/main , vous pouvez utiliser un chemin relatif comme celui-ci:

 sourceSets { main.java.srcDirs += 'src/main/../../../' } 

Vous pouvez append un dossier source au script de génération, puis synchroniser. Recherchez les sources dans la documentation ici: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Basic-Project

Je n’ai pas trouvé de moyen d’append des dossiers sources de test. J’ai ajouté manuellement la source au fichier .iml. Bien sûr, cela signifie qu’il disparaîtra à chaque synchronisation du script de construction.

Bien que sourceSets vous permette d’inclure des structures de répertoires entières, il est impossible d’en exclure des parties dans Android Studio (à partir de la version 1.2), comme décrit ici: Android Studio Exclude Class from build?

Jusqu’à ce que Android Studio soit mis à jour pour prendre en charge les directives d’inclusion / exclusion pour les sources Android, les liens symboliques fonctionnent assez bien. Si vous utilisez Windows, les outils natifs tels que junction ou mklink peuvent atteindre l’équivalent des liens symboliques Un * x. CygWin peut également les créer avec un peu de coexistence. Voir: Liens symboliques Git dans Windows et Comment créer un lien symbolique avec cygwin dans Windows 7

Juste au cas où quelqu’un serait intéressé, voici un fichier complet de gradation de module Java qui génère et référence correctement les artefacts créés dans une application multi-module Android.

 buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "net.ltgt.gradle:gradle-apt-plugin:0.15" } } apply plugin: "net.ltgt.apt" apply plugin: "java-library" apply plugin: "idea" idea { module { sourceDirs += file("$buildDir/generated/source/apt/main") testSourceDirs += file("$buildDir/generated/source/apt/test") } } dependencies { // Dagger 2 and Comstackr comstack "com.google.dagger:dagger:2.15" apt "com.google.dagger:dagger-comstackr:2.15" comstack "com.google.guava:guava:24.1-jre" } sourceCompatibility = "1.8" targetCompatibility = "1.8"